Hazelcast:当我在同一个函数中添加并清除ISet时,是否会跨所有节点触发添加的侦听器项?

Hazelcast:当我在同一个函数中添加并清除ISet时,是否会跨所有节点触发添加的侦听器项?,hazelcast,hazelcast-imap,Hazelcast,Hazelcast Imap,我希望在添加项时跨所有节点触发item added listener触发器,在侦听器中进行异步调用,在侦听器被触发后,我希望清除ISet 根据EntryProcessor逻辑,每个查询都作为一个条目处理器执行,我认为它会在所有节点上一致地触发添加项的侦听器。我最初的测试也指出了同样的行为。但由于我处理的是生产数据,所以我希望100%确保在所有节点中都会触发item added listener,即使我将在下一时刻在其中一个节点中清除ISet 如果您知道任何文件,请给我指一下。或者,如果您遇到类似

我希望在添加项时跨所有节点触发item added listener触发器,在侦听器中进行异步调用,在侦听器被触发后,我希望清除ISet

根据EntryProcessor逻辑,每个查询都作为一个条目处理器执行,我认为它会在所有节点上一致地触发添加项的侦听器。我最初的测试也指出了同样的行为。但由于我处理的是生产数据,所以我希望100%确保在所有节点中都会触发item added listener,即使我将在下一时刻在其中一个节点中清除ISet

如果您知道任何文件,请给我指一下。或者,如果您遇到类似情况,请分享您的经验。

对于“我希望100%确保添加的项目侦听器在所有节点中都被触发”的要求,我建议使用ReliableTopic,并确保您的主题侦听器实现使用
ReliableMessageListener
接口,正如您所看到的,它具有用于存储(storeSequence();)和获取序列号(retrieveInitialSequence();)的附加接口,例如,您可以在客户端本地存储此信息。因此,每个客户端将根据序列id侦听事件,这意味着如果由于某种原因断开连接,则可以在恢复后从最新的事件序列id恢复。

谢谢@sertug。让我试着实现它。ITopic可能不符合我的目的,我不想要任何序列或存储序列,因为我只是用它来构建缓存。如果其中一个盒子坏了,我们将再次重新加载缓存。需要存储顺序,以便在中断时不会丢失/错过任何侦听器事件。请告诉我这里可能出现的中断类型。谢谢。侦听器可以脱机一段时间,但在此期间无法接收事件,当它重新联机时,您可能希望继续侦听您上次留下的消息。另请参阅: