向成员传播 Hazelcast 动态 imap 配置
Hazelcast dynamic imap configuration propagation to members
如果我有多个使用相同 IMap 的 Hazelcast 集群成员,并且我想以编程方式以特定方式配置 IMap,那么我是否需要在所有成员中都包含配置代码,或者是否足以拥有配置代码只在其中一个成员中出现一次?
换句话说,MapConfigs 是特定于成员的还是集群范围的?
为什么我要问的是 Hazelcast 文档 http://docs.hazelcast.org/docs/latest/manual/html-single/index.html#configuring-programmatically
说
As dynamically added data structure configuration is propagated across
all cluster members, failures may occur due to conditions such as
timeout and network partition. The configuration propagation mechanism
internally retries adding the configuration whenever a membership
change is detected.
这给我的印象是配置传播。
现在,如果成员 A 为 IMap 指定了某个 MapConfig "testMap",成员 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 的一致行为,这支持每个成员需要进行相同配置的想法。
每个成员都拥有IMap 的特定分区。成员的 IMap 配置仅对其拥有的分区有效。
所以在不同的member中看到同一个map的entry的TTL值不同是很正常的。
正如您所说,所有成员都应该具有相同的 IMap 配置以具有集群范围的持久行为。
否则,每个成员都会将自己的配置应用于自己的分区。
但是,如果按照 here 所述添加动态配置,则该配置会传播到所有成员并改变他们的行为。
简而言之,如果您在创建实例之前添加配置,即本地配置。但是,如果您在创建实例后添加它,那就是动态配置并传播到所有成员。
如果我有多个使用相同 IMap 的 Hazelcast 集群成员,并且我想以编程方式以特定方式配置 IMap,那么我是否需要在所有成员中都包含配置代码,或者是否足以拥有配置代码只在其中一个成员中出现一次?
换句话说,MapConfigs 是特定于成员的还是集群范围的?
为什么我要问的是 Hazelcast 文档 http://docs.hazelcast.org/docs/latest/manual/html-single/index.html#configuring-programmatically
说
As dynamically added data structure configuration is propagated across all cluster members, failures may occur due to conditions such as timeout and network partition. The configuration propagation mechanism internally retries adding the configuration whenever a membership change is detected.
这给我的印象是配置传播。
现在,如果成员 A 为 IMap 指定了某个 MapConfig "testMap",成员 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 的一致行为,这支持每个成员需要进行相同配置的想法。
每个成员都拥有IMap 的特定分区。成员的 IMap 配置仅对其拥有的分区有效。 所以在不同的member中看到同一个map的entry的TTL值不同是很正常的。 正如您所说,所有成员都应该具有相同的 IMap 配置以具有集群范围的持久行为。 否则,每个成员都会将自己的配置应用于自己的分区。
但是,如果按照 here 所述添加动态配置,则该配置会传播到所有成员并改变他们的行为。
简而言之,如果您在创建实例之前添加配置,即本地配置。但是,如果您在创建实例后添加它,那就是动态配置并传播到所有成员。