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

Hazelcast: Will item added listener gets triggered across all nodes when I add and clear ISet in the same function?

我想在添加项目时跨所有节点触发项目添加侦听器触发器,在侦听器中进行异步调用,在侦听器触发后我想清除 ISet。

根据 EntryProcessor 逻辑,每个查询都作为入口处理器执行,我假设它会连贯地触发所有节点上的项目添加侦听器。我的初始测试也指向相同的行为。但是由于我正在处理生产数据,所以我想 100% 确定在所有节点中都触发了项目添加的侦听器,即使我在下一时刻清除其中一个节点中的 ISet。

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

对于 "I want to be 100% sure that item added listener gets triggered in all the nodes" 的要求,我建议使用 ReliableTopic 并确保您的主题侦听器实现使用 ReliableMessageListener 接口,因为您可以看到它有额外的存储接口 (storeSequence(); ) 并获取序列号 (retrieveInitialSequence();),例如,您可以将此信息本地存储在客户端上。所以每个client都会根据sequence id监听事件,也就是说如果因为某种原因断开连接,恢复后可以从最新的event sequence id恢复。 http://docs.hazelcast.org/docs/latest-development/manual/html/Distributed_Data_Structures/Reliable_Topic.html