Hazelcast 复制?

3
4个回答

7
如果您有N个Hazelcast实例聚合在一起(N个节点),那么您的数据将被分成N个部分。每个部分将由一个节点拥有。根据配置的复制因子(默认为3),每个部分也会被复制到其他一些节点上。因此,每个节点都会拥有它自己的一个部分,以及一些仅仅是副本的其他部分。

3

3
根据我的经验,除了复制的数据结构之外,还有一种根据您的需求进行动态复制的方法。这不是官方方法,只是一个变通方法。您可以使用备份来使您的生活更加轻松。
例如:我有一个IMap,并且我希望在所有节点上都有它(我不知道为什么你会这样想,但假设你确实这样想)。我可以执行两个步骤。
1. backup-count = (NumberOfNodes - 1) 2. read-backup-data = true 因此,现在所有节点都拥有数据的副本,并且由于您可以从备份中读取,就像是一个复制的映射。
您可以根据所需的一致性级别调整备份计数或异步备份计数。单击此处了解更多详细信息。

但并非所有操作都支持从备份读取(与非键值访问有关的任何内容),因此这经常会产生误导 :) - noctarius
是的,这不是一个好的解决方案。这只是一个针对读取密集型系统的解决方法,该系统有很多与键相关的获取操作。 :) - Reveka

2
哈兹尔卡斯特的复制映射远优于EHcache,它们将在集群中的每个节点(JVM)上复制整个映射。此外,您可以使用分区映射,将数据分割到所有JVM上,但对客户端而言,它看起来像是一个单一的映射。这使您可以存储比单个JVM中可以存储的更多的数据。对于调整堆大小的经验法则是:为数据获得1/3,为另一个节点的备份获得1/3(假设备份数为1),并为JVM处理获得1/3。请注意保留HTML标签。

不,OP正在询问复制的问题,并非分发,并且他非常明确地表示他不是在谈论分发,而你现在正在解释分发。-1。 - searchengine27

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接