Hazelcast:服务器节点和客户端节点初学者的最佳实践

时间:2018-02-22 06:01:14

标签: hazelcast

新的hazelcast ,希望了解群集中客户端和服务器功能的功能。 假设我有4个不同的服务器(不是指hazelcast服务器)/机器,我想最大化RAM利用率: -

  • 我是否启动4个服务器实例,每个服务器/机器上有一个实例?
  • 我是否启动了4个客户端实例,每个服务器/计算机上有一个?
  • 业务逻辑是否仅在客户端实例中编写?如果是这样,那么除了管理生命周期之外,服务器实例是否包含任何逻辑?

我知道这会根据要求而有所不同,但我希望得到一个大致的想法。

2 个答案:

答案 0 :(得分:0)

添加欧内斯特的陈述。您通常希望数据保存在缓存中并处理在客户端上。然而,使用淡褐色,它不一定是这样。检查文档中的一些有趣的功能,如ExecutorService和EntryProcessors。

您可能还想查看Near缓存的概念,您仍然可以在专用的Hz实例(服务器)上保存数据,同时在客户端中维护近缓存。要注意围绕此问题的数据同步挑战,尽管这在大多数情况下都很有效(同样非常主观)。 希望这些指针能够从一开始就提出一些想法。一切都好!

答案 1 :(得分:0)

您的问题没有单一的答案。有许多因素需要考虑。例如,您的一个问题是业务逻辑所在的位置。这在很大程度上取决于如何使用淡褐色。让我们说Hazelcast纯粹用于缓存目的。然后,业务逻辑将在客户端进行。

另外,如果我们说Hazelcast充满了丰富的Pojos,并且使用了域驱动设计,那么我们可以说逻辑就在于haelcast实例本身。通常在现实生活中,真相介于两者之间

在内存利用率方面,这在很大程度上取决于你的设置预算等等......我们可以说,如果你有一台服务器有很多内存,你不使用任何来自Hazelcast的商业插件在运行具有大量内存的单个节点时,关闭内存堆然后在具有有限内存量的同一台机器上运行多个hazelcasts将更有益。

还应该注意的是,分配超过32Gigs堆的现象将驱使你进入64位宇宙。

这又取决于很多因素。如果你有一个实时交互式应用程序,你不能容忍大的GC pausas,所以你会倾向于使用更多的小网页榛子。如果你有非交互式应用程序容忍大的GC暂停,那么你可以拥有大堆的另一种方式。所以你看到你的问题没有简单的答案。