【发布时间】:2018-04-13 10:38:35
【问题描述】:
如果我有多个使用同一个 IMap 的 Hazelcast 集群成员,并且我想以编程方式以特定方式配置 IMap,那么我是否需要在所有成员中都有配置代码,或者拥有配置就足够了只在其中一个成员中编码一次?
换句话说,MapConfigs 是仅特定于成员的还是集群范围的?
为什么我要问的是 Hazelcast 文档 http://docs.hazelcast.org/docs/latest/manual/html-single/index.html#configuring-programmatically
这么说
随着动态添加的数据结构配置传播 所有集群成员,可能会由于以下条件而发生故障 超时和网络分区。配置传播机制 每当成员资格时,内部都会重试添加配置 检测到变化。
这给了我配置传播的印象。
现在如果成员 A 为 IMap "testMap" 指定了某个 MapConfig,那么成员 B 是否应该看到该配置
hzInstance.getConfig.findMapConfig("testMap") #or .getMapConfig("testMap")
在我的测试中,B 没有看到 A 完成的 MapConfig。
我还尝试在 A mapConfig.TimeToLiveSeconds(60) 和 B mapConfig.TimeToLiveSeconds(10) 指定。
似乎 IMap 中 A 拥有的项目在 60 秒内被驱逐,而 B 拥有的项目在 10 秒内被驱逐。如果我想要 IMap 的行为一致,这支持每个成员都需要执行相同配置的想法。
【问题讨论】: