【问题标题】:Hazelcast does not populate ReplicatedMap at node startupHazelcast 在节点启动时不会填充 ReplicatedMap
【发布时间】:2017-01-17 18:35:44
【问题描述】:

这是我们的代码,其中 ClusterStorage 是包装 Hazelcast 的代码。

    public ClusterStorage clusterStorage() {
        Config config = new Config();
        String mapName = "cluster-storage";
        ReplicatedMapConfig mapConfig = config.getReplicatedMapConfig(mapName);
        mapConfig.setInMemoryFormat(InMemoryFormat.BINARY);

        config.getGroupConfig()
                .setName("name")
                .setPassword("pass");

        HazelcastInstance instance = Hazelcast.newHazelcastInstance(config);

        return new ClusterStorage(instance.getReplicatedMap(mapName));
    }

当我在两个节点都启动时更改地图时,更改会被复制,但是当我在节点 n1 上更改地图然后启动第二个节点 n2 时,不会复制来自 n1 的状态并且 n2 节点有空地图。

我想这应该可行,对吧? 可能有什么问题?

【问题讨论】:

    标签: java distributed-computing hazelcast


    【解决方案1】:

    不保证两张地图会同步:

    既不跟踪也不重新发送丢失或丢失的更新

    http://docs.hazelcast.org/docs/3.5/manual/html/replicatedmap.html

    【讨论】:

      【解决方案2】:

      我设法做到了。我的发现:

      问题是来自 Maven 的 pom.xml 中的依赖管理的 3.7.1 和 3.5.5 版本的组合。我们不知道 Spring Boot 的导入依赖管理还定义了具有不同版本的 hazelcast 工件,这反过来可能导致不兼容的库出现在类路径上。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-05
        • 2018-03-28
        • 1970-01-01
        • 2022-11-04
        • 1970-01-01
        • 2014-09-06
        相关资源
        最近更新 更多