使用 Canal 异步删除的缓存最终一致性方案 添加异步校验流程如何实现?

2022-09-02 17:35:37 +08:00
 dragon2031

最初的想法是 消费完 Canal 监听消息删除缓存,而后向 MQ 发送校验消息。 具体校验流程为: 查验 redis 是否操作存在该 key , 如果没有不管, 如果有查数据库比对不一致则删除。 目前的问题是,如果写操作频繁情况下,校验消息会很多 ,这又导致查库操作增多了。仔细考虑了下这个想法貌似不是很好。请问有比较好的实现建议吗?

995 次点击
所在节点    Java
4 条回复
7911364440
2022-09-02 17:50:49 +08:00
不比对数据是否一致,直接删除 redis 呢?
RedBeanIce
2022-09-02 18:28:30 +08:00
你遇到的问题是什么,没有问题思考解决方案最终都是瞎想。请不要浪费时间瞎想,时间宝贵。。。。楼上是对的,直接删就行了,会有什么问题吗
dragon2031
2022-09-02 18:51:53 +08:00
Interview Oriented Programming ,想整花活。。。 确实不该不顾确切业务场景 空想方案 。不过如果直接删除, 下次查询操作需要重建缓存 担心增加不必要的查库操作
notwaste
2022-09-05 16:49:25 +08:00
“不过如果直接删除, 下次查询操作需要重建缓存 担心增加不必要的查库操作”
现在你的做法把这个不必要操作范围放得更大了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/877308

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX