在两个 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.
使用受控逐出并添加 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.