关键条件,竞争条件下的Hazelcast Map Expire Listener

时间:2018-11-24 08:25:45

标签: hazelcast hazelcast-imap

我在hazelcast成员上有IMap Long键的某些部分具有失效时间(TTL)。

为此,我正在使用EntryExpiredListener在密钥上注册addEntryListener(MapListener, K, boolean)

一切正常,但我对此表示怀疑。

documentation所述:

  

使用上述方法,在创建实例与注册侦听器之间可能会丢失事件。为了克服这种竞争状况,Hazelcast允许您在配置中注册侦听器。

如果我在密钥上注册EntryExpiredListener,我会遇到上述“丢失事件”吗?

1 个答案:

答案 0 :(得分:1)

如果它在成员上并且您将侦听器标记为本地(因此每个成员仅接收本地expration事件)并在配置中定义,则您将不会,因为事件对于每个成员都是本地的。

如果在创建实例之后,分配了分区之后以及在注册侦听器之前注册了侦听器,则某些数据可能会过期。这就是为什么上面的语句说您需要在配置中定义侦听器以防止这种情况的原因。