我正在制定一项要求,即我在群集中运行N个hazelcast实例,并且还有kafka消费者在所有这些实例上运行。
现在的问题是,kafka上的每条消息都应该添加到分布式地图中,并且必须每20秒清除一次条目,我通过使用生存时间和最大空闲秒参数的组合来完成在地图配置。
但我真正想要的是,当条目被驱逐时,只有一个节点应该处理它,现在,条目逐出被告知所有节点。
如果需要更多信息,请与我们联系。
答案 0 :(得分:1)
您必须将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。