我有许多节点,每个节点都拥有大量物理资源的子集。每个节点只处理自己的资源,但需要根据池中所有资源的状态来处理。 节点仅更新其自身资源的状态,但监听所有其他资源的状态更改。 当一个节点死亡(进程终止,崩溃,掉电......)时,这些物理资源就会随之消失,其他节点必须尽快丢弃它们。
现在我将使用分布式复制缓存(因此节点可以读取本地副本以获得性能),但是如何“清除”死亡条目(拥有节点无法执行此操作)。 标准答案似乎是到期政策=地图条目在没有更新的情况下获得X秒生存,然后消失。问题是,如果您正在考虑100.000范围的资源和100个节点,那么就是为了不改变状态而发送的大量更新。更不用说在超时之前更新每个条目的工作,并在其他节点中丢弃这些更新。
有更好的方法吗?
答案 0 :(得分:1)
EVT_NODE_LEFT
IgniteEvents
SqlQuery
或ScanQuery
查找相关参赛作品并将其删除