gpt4 book ai didi

java - Hazelcast - 在客户端/服务器模式下为多个应用程序提供服务的最佳集群拓扑是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 11:28:50 24 4
gpt4 key购买 nike

我们几乎所有的应用程序都在嵌入式拓扑中使用 Hazelcast 集群。由于应用程序负载较高,我们偶尔会遇到内存和 CPU 问题。因此,我们计划将拓扑结构从嵌入式模式更改为客户端/服务器模式。

问题是,我们是否应该为每个应用程序设置一个新的集群?或者应该用一个集群来服务所有客户端应用程序?

我知道可以在 jvm 中启动多个 hazelcast 实例 ( http://docs.hazelcast.org/docs/3.5/manual/html/createclustergroups.html )。这也可以作为生产的一种选择吗?

最佳答案

让我们根据用例来分析。

  • UseCase-1: Hazelcast 集群主要用作分布式缓存。在这种情况下,您可以简单地保留一个公共(public)集群,所有应用程序都可以维护HazelcastClient来访问该集群。
  • UseCase-2:Hazelcast 集群既用作分布式缓存,也用作使用执行器的分布式计算用途。在这种情况下,您需要分析将在集群中存储的数据量以及将使用执行程序池运行的计算类型。在多个服务器之间分配节点时,您还必须考虑 CPU/核心的数量。

最佳实践

  • HazelcastClient 对象保持为单例,以便为每个请求重用该连接,而不是创建多个客户端连接,从而增加网络开销,从而影响性能。

  • 在适用的情况下利用 NearCache 功能,将经常访问的数据缓存在客户端本身,而不是每次调用都访问集群。

  • 最好在各自的 JVM 中启动每个节点,而不是在单个 JVM 中运行多个节点。父 JVM 中任何不可预见的问题都会导致所有节点崩溃。

关于java - Hazelcast - 在客户端/服务器模式下为多个应用程序提供服务的最佳集群拓扑是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44039220/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com