gpt4 book ai didi

java - Hazelcast MapStoreConfig 被忽略

转载 作者:搜寻专家 更新时间:2023-11-01 03:06:13 25 4
gpt4 key购买 nike

我正在使用 map 存储将我的 hazelcast 分布式 map 保存在数据库中。

在我的测试用例中,我启动了三个 hazelcast 实例,每个实例都以相同的方式配置:

Config cfg = new Config();
cfg.setInstanceName("name");
hazelcast = Hazelcast.newHazelcastInstance(cfg);
MapConfig mapConfig = new MapConfig("myMapName");
MapStoreConfig mapStoreConfig = new MapStoreConfig();
mapStoreConfig.setClassName(MyMapStore.class.getName());
mapStoreConfig.setWriteDelaySeconds(0);
mapStoreConfig.setEnabled(true);
mapConfig.setMapStoreConfig(mapStoreConfig);
mapConfig.setBackupCount(2);
hazelcast.getConfig().addMapConfig(mapConfig);
IMap myMap = hazelcast.getMap("myMapName");

但是,当我向 map 添加值时,只有第一个集群成员写入数据库,MapStoreConfig 只是在每个其他节点上设置为默认值。但是,如果我将代码更改为以下内容,它将起作用:

Config cfg = new Config();
cfg.setInstanceName("name");
MapConfig mapConfig = new MapConfig("myMapName");
MapStoreConfig mapStoreConfig = new MapStoreConfig();
mapStoreConfig.setClassName(MyMapStore.class.getName());
mapStoreConfig.setWriteDelaySeconds(0);
mapStoreConfig.setEnabled(true);
mapConfig.setMapStoreConfig(mapStoreConfig);
mapConfig.setBackupCount(2);
cfg.addMapConfig(mapConfig);
hazelcast = Hazelcast.newHazelcastInstance(cfg);
IMap myMap = hazelcast.getMap("myMapName");

似乎 hazelcast.getConfig().addMapConfig(mapConfig); 行被忽略了。使用 hazelcast v3.1.5 测试。

最佳答案

据我了解,Config 实例仅应被视为一种"template",用于创建一个实例,但可能不会用于之后修改 这个实例。虽然根据快速网络搜索和查看文档,这没有明确说明,但是

  1. 到目前为止我看到的所有示例都遵循首先创建和完成配置,然后创建相应实例和
  2. 的模式
  3. addMapConfig 方法(在 https://github.com/hazelcast/hazelcast/blob/master/hazelcast/src/main/java/com/hazelcast/config/Config.java 中)不涉及任何通知机制。所以至少必须有某种机制来通知 Hazelcast 实例有关更改的配置,但我认为这种机制不存在。

从我在源代码中读到的内容(例如 https://github.com/hazelcast/hazelcast/blob/master/hazelcast/src/main/java/com/hazelcast/instance/Node.javahttps://github.com/hazelcast/hazelcast/blob/master/hazelcast/src/main/java/com/hazelcast/instance/HazelcastInstanceImpl.java ),Config 仅在构建时读取,并且似乎无法更改 Hazelcast 实例创建之后的配置。

关于java - Hazelcast MapStoreConfig 被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21379171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com