使用添加TTL的受控驱逐时,如:
myMap.put( "1", "John", 50, TimeUnit.SECONDS )
在两个使用hazelcast的应用程序实例上,这两个应用程序实例属于同一个组并在启动期间正确识别,在实现我们自己的EntryExpiredListener
时,我们注意到两个实例都在以下位置接收相同的事件:
@Override
public void entryExpired(EntryEvent<String, SomeObject> event) {
...
}
我们希望只有一个hazelcast实例来处理事件,这是正确的行为吗?我们如何只配置一个实例来使用这样的事件。
答案 0 :(得分:1)
找到解决方案,IMap有方法addLocalEntryListener
,注册监听器这样会使事件只来到拥有条目的实例。
Also note that entries can migrate to
other nodes for load balancing and/or membership change.