【问题标题】:Hazelcast Replication?Hazelcast 复制?
【发布时间】:2016-11-08 02:40:31
【问题描述】:

Hazelcast 有类似 Ehcache 的 Replication 吗?
http://www.ehcache.org/generated/2.9.0/pdf/Ehcache_Replication_Guide.pdf

我发现只有分布式,但没有复制。

【问题讨论】:

    标签: hazelcast


    【解决方案1】:

    如果您有 N 个 hazelcast 实例集群在一起(N 个节点),那么您的数据将被分成 N 个部分。每个部分将由一个节点拥有。根据配置的复制因子(默认为 3),每个部分也将在其他一些节点中复制。所以每个节点都会有一个它拥有的部分,以及其他一些只是副本的部分。

    【讨论】:

      【解决方案2】:

      查看 ReplicatedMap (http://docs.hazelcast.org/docs/3.6/manual/html-single/index.html#replicated-map),它是尽力复制的,因此几乎等同于 EHcache 中的复制。

      【讨论】:

        【解决方案3】:

        根据我的经验,除了复制的数据结构之外,还有一种根据您的需要进行动态复制的方法。这不是官方方式,只是一种解决方法。您可以使用备份让您的生活更轻松。

        示例: 我有一个 IMap,我想要它在我的所有节点中(我不知道你为什么想要它,但假设你想要它)。我可以做两步。

        1. 备份计数 = (NumberOfNodes - 1)
        2. 读取备份数据 = true

        因此,现在您的所有节点都拥有数据副本,而且您可以从备份中读取数据,这就像复制的地图。

        您可以使用备份计数或异步备份计数,具体取决于您想要的一致性级别。点击here了解更多详情。

        【讨论】:

        • 但并非所有操作都支持从备份读取(与基于非密钥的访问相关的任何内容),因此这通常会产生误导:)
        • 是的,这不是一个好的解决方案。对于具有大量关键相关获取的读取密集型系统,这是一种解决方法。 :)
        【解决方案4】:

        Hazelcast 的复制地图远远优于 EHcache,它们将在集群中的每个节点 (JVM) 上复制整个地图。

        除此之外,您还可以使用分区映射,它将您的数据拆分到所有 JVM,但在客户端看来,它就像是一个单一的映射。

        这允许您存储比单个 JVM 中存储的更多的数据。

        调整集群堆大小的一个好的经验法则是,1/3 用于数据,1/3 用于备份另一个节点(假设备份计数为 1),1/3 用于 JVM 处理。

        【讨论】:

        • 嗯,没有。 OP 在询问复制,并且非常明确地说他不是在谈论分发,而您现在正在解释分发。 -1.
        猜你喜欢
        • 1970-01-01
        • 2016-05-13
        • 2017-08-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多