ContinuousQuery事件与初始查询不同步问题咨询
Ignite 2.17.0/GridGain CE 8.9.19 带初始查询的ContinuousQuery订阅一致性问题
问题现象
官方文档推荐的「配置带初始查询的ContinuousQuery并遍历游标」订阅模式,仅在缓存无更新操作时能正常工作。当缓存同时发生更新时,会出现三类异常情况:
- 更新事件先于游标遍历到对应记录
- 更新事件的版本早于游标观测到的记录版本
- 更新事件对应的记录从未出现在游标中
预期与疑问
根据官方文档描述,该订阅模式应实现缓存状态与订阅的无缝衔接,不会出现上述数据不一致问题。现希望确认这些异常是否由自身配置错误导致。
复现说明
- 核心实现:订阅逻辑在
DemoListener.java中,通过创建带初始SQL查询的ContinuousQuery,同时注册缓存更新监听器 - 复现步骤:
- 执行命令
./gradlew run启动实例 - 启动第二个实例时会输出WARN日志(若未复现可尝试重启实例)
- 执行命令
初步判断
从演示代码的配置逻辑来看,完全遵循官方文档推荐的订阅流程:初始化ContinuousQuery、设置初始查询与监听器、提交到缓存。若官方文档明确该模式保证数据一致性,则这些异常更可能是对应版本的框架问题,而非配置错误。建议查看Ignite 2.17.0/GridGain CE 8.9.19的Release Notes或官方Issue Tracker,确认是否存在同类已报告问题。
内容的提问来源于stack exchange,提问作者Mikha
相关产品推荐
相关产品推荐

