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

时间:2017-11-13 12:25:36

标签: hazelcast

使用添加TTL的受控驱逐时,如:

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

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

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

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

1 个答案:

答案 0 :(得分:1)

找到解决方案,IMap有方法addLocalEntryListener,注册监听器这样会使事件只来到拥有条目的实例。

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