我们几乎所有应用程序都在嵌入式拓扑中使用Hazelcast集群。 由于应用程序的负载很高,我们偶尔会遇到内存和CPU问题。因此,我们计划将拓扑从嵌入式更改为客户端/服务器模式。
问题是,我们应该为每个应用程序设置一个新的集群吗?或者单个群集是否应该服务于所有客户端应用程序
我知道可以在jvm(http://docs.hazelcast.org/docs/3.5/manual/html/createclustergroups.html)中启动多个hazelcast实例。这也可以作为生产的选择吗?
答案 0 :(得分:0)
让我们根据用例进行分析。
HazelcastClient
来访问集群。 最佳做法
将HazelcastClient
个对象保留为单个,以便为每个请求重用连接,而不是创建多个客户端连接,从而增加可能影响性能的网络开销。
在适用的情况下利用NearCache
功能,在客户端本身缓存频繁访问的数据,而不是为每次呼叫转移到群集。
最好在自己的JVM中启动每个节点,而不是在单个JVM中运行多个节点。父JVM中任何无法预料的问题都会导致所有节点崩溃。