Hazelcast中基于时间的驱逐

时间:2017-11-13 21:39:45

标签: hazelcast

我正在制定一项要求,即我在群集中运行N个hazelcast实例,并且还有kafka消费者在所有这些实例上运行。

现在的问题是,kafka上的每条消息都应该添加到分布式地图中,并且必须每20秒清除一次条目,我通过使用生存时间和最大空闲秒参数的组合来完成在地图配置。

但我真正想要的是,当条目被驱逐时,只有一个节点应该处理它,现在,条目逐出被告知所有节点。

如果需要更多信息,请与我们联系。

1 个答案:

答案 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。