为何EVT_CACHE_REBALANCE_OBJECT_LOADED事件仅在Ignite备份节点触发?
关于Ignite
EVT_CACHE_REBALANCE_OBJECT_LOADED 事件触发逻辑的确认 你的推测完全正确,Ignite中EVT_CACHE_REBALANCE_OBJECT_LOADED事件的触发逻辑确实和数据是否发生物理加载直接相关:
- 当集群节点宕机后,原备份节点晋升为主节点的过程,仅仅是分区角色的切换——该节点本地已经持有对应分区的完整数据副本,不需要从其他节点拉取或加载任何对象,因此不会触发这个事件。
- 而需要补全备份的节点,需要从当前主节点同步分区数据,每成功加载一个对象到本地缓存时,就会触发
EVT_CACHE_REBALANCE_OBJECT_LOADED事件,这也是你只在备份节点看到该事件的原因。
结合你做的验证:
- 通过
mapKeyToPrimaryAndBackups(key)确认事件触发节点并非主节点,说明该节点正处于备份数据同步阶段; - 本地
ScanQuery()能查到对应数据,也印证了原备份升主时数据早已存在,无需加载。
内容的提问来源于stack exchange,提问作者Mikha
相关产品推荐
相关产品推荐

