地图上的Hazelcast本地条目侦听器

问题描述 投票:0回答:2

我一直在研究使用本地条目侦听器,而不是普通的条目侦听器,以便事件仅由单个侦听器处理。

我发现了与此主题相关的各种帖子,例如thisthisthisthisthis。似乎本地条目侦听器确实是在多节点群集中仅一次处理事件的一种方式。

但是,我不确定这种本地条目侦听器在故障情况下如何运行。例如,如果作为该条目的主节点的节点不可用,那么该事件将发生什么。备份会及时处理吗?还是由于榛子广播需要一些时间来确定主机已关闭而应该选举新的主机而错过事件?旧的AP系统和新的CP子系统之间有区别吗?

hazelcast high-availability
2个回答
0
投票

我们避免使用本地条目侦听器。相反,我们现在使用hazelcast中的executorservice来调度命名任务。这样,我们可以正确响应集群中的更改。似乎hazelcast具有执行任务的首选成员,但这对我们来说不是问题。


0
投票

来自Hazelcast文档:

请注意,分布式地图中的条目在集群成员;每个成员都拥有并管理条目。拥有的条目称为本地条目。该听众将是侦听本地条目的事件。假设您的集群有member1和member2。在member2上,您添加了本地侦听器,并从成员1,您调用{@code map.put(key2,value2)}。如果拥有key2由member2,然后将向本地侦听器通知添加/更新事件。还要注意,条目可以迁移到其他节点进行加载平衡和/或成员资格更改。

关键部分是:“还请注意,条目可以迁移到其他节点以进行负载平衡和/或成员资格更改。”

我猜想,如果原始分区所有者失败,那么其他一些节点将成为这些条目的新所有者(或其中一部分,取决于重新分区完成后的集群状态),然后新所有者将运行本地条目侦听器。

© www.soinside.com 2019 - 2024. All rights reserved.