Hazelcast在节点启动时不会填充ReplicatedMap

时间:2016-09-09 14:56:08

标签: java distributed-computing hazelcast

这是代码,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节点具有空映射。

我认为这应该有效,对吗? 什么可能是错的?

2 个答案:

答案 0 :(得分:0)

不保证两张地图都会同步:

  

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

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

答案 1 :(得分:0)

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

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