我正在满足一个要求,即我有 N 个 hazelcast 实例在集群中运行,并且 kafka 消费者在所有实例上运行。
现在的问题是,kafka 上传入的每条消息都应添加到分布式映射中,并且必须每 20 秒驱逐该条目,这是我通过在映射中结合使用生存时间和最大空闲秒参数来做到的配置。
但我真正想要的是,当条目被驱逐时,只有一个节点应该处理它,现在,条目驱逐被通知给所有节点。
如果需要更多信息,请告诉我。
您必须将 localEntryListener 添加到分布式地图,以便成员只能收到其所有者的通知。
e.g.
if(map != null){
map.addLocalEntryListener(new EntryAddedListener<Long, Long>() {
@Override
public void entryAdded(EntryEvent<Long, Long> event) {
log.info("LOCAL ENTRY ADDED : {} at {}", event, System.currentTimeMillis());
}
});
上面的示例是针对 EntryAddedListener 的,您也可以类似地实现 EntryEvictedListener。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)