java Hazelcast不会在节点启动时填充ReplicatedMap
这是一段代码,其中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节点的映射为空
我想这应该行得通吧? 可能有什么问题
# 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
工件,这反过来可能导致类路径上存在不兼容库