在两个 hazelcast 实例中,如何使驱逐事件仅由其中一个消耗?

Out of two hazelcast instances how to make eviction event to be consumed just by one of them?

使用受控逐出并添加 TTL 时,例如:

myMap.put( "1", "John", 50, TimeUnit.SECONDS )

在属于同一组并在启动期间正确识别彼此的两个使用 hazelcast 的应用程序实例上,在实现我们自己的 EntryExpiredListener 时,我们注意到两个实例在以下位置收到相同的事件:

@Override
public void entryExpired(EntryEvent<String, SomeObject> event) {
       ...
}

我们希望只有一个 hazelcast 实例来处理事件,这是正确的行为吗?我们如何配置一个实例来消费这样的事件。

找到解决方案,IMap 有方法 addLocalEntryListener ,以这种方式注册侦听器将使事件仅到达拥有条目的实例。

Also note that entries can migrate to
other nodes for load balancing and/or membership change.