【发布时间】:2016-11-08 02:40:31
【问题描述】:
Hazelcast 有类似 Ehcache 的 Replication 吗?
http://www.ehcache.org/generated/2.9.0/pdf/Ehcache_Replication_Guide.pdf
我发现只有分布式,但没有复制。
【问题讨论】:
标签: hazelcast
Hazelcast 有类似 Ehcache 的 Replication 吗?
http://www.ehcache.org/generated/2.9.0/pdf/Ehcache_Replication_Guide.pdf
我发现只有分布式,但没有复制。
【问题讨论】:
标签: hazelcast
如果您有 N 个 hazelcast 实例集群在一起(N 个节点),那么您的数据将被分成 N 个部分。每个部分将由一个节点拥有。根据配置的复制因子(默认为 3),每个部分也将在其他一些节点中复制。所以每个节点都会有一个它拥有的部分,以及其他一些只是副本的部分。
【讨论】:
查看 ReplicatedMap (http://docs.hazelcast.org/docs/3.6/manual/html-single/index.html#replicated-map),它是尽力复制的,因此几乎等同于 EHcache 中的复制。
【讨论】:
根据我的经验,除了复制的数据结构之外,还有一种根据您的需要进行动态复制的方法。这不是官方方式,只是一种解决方法。您可以使用备份让您的生活更轻松。
示例: 我有一个 IMap,我想要它在我的所有节点中(我不知道你为什么想要它,但假设你想要它)。我可以做两步。
因此,现在您的所有节点都拥有数据副本,而且您可以从备份中读取数据,这就像复制的地图。
您可以使用备份计数或异步备份计数,具体取决于您想要的一致性级别。点击here了解更多详情。
【讨论】:
Hazelcast 的复制地图远远优于 EHcache,它们将在集群中的每个节点 (JVM) 上复制整个地图。
除此之外,您还可以使用分区映射,它将您的数据拆分到所有 JVM,但在客户端看来,它就像是一个单一的映射。
这允许您存储比单个 JVM 中存储的更多的数据。
调整集群堆大小的一个好的经验法则是,1/3 用于数据,1/3 用于备份另一个节点(假设备份计数为 1),1/3 用于 JVM 处理。
【讨论】: