请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

双写一致

老师您好,如果使用消息队列实现双写一致,它的步骤应该是怎么样的?和双删方案比优势在哪里?

正在回答

1回答

1. 业务写入数据库

2. 发送更新事件到消息队列

3. 消费者服务订阅消息队列

4. 异常补偿机制

一致性保障比双删更强一些,达到最终一致性,但是实现比较复杂,双删实现更简单方便(阿里内部很多地方就是用的双删或三删)

0 回复 有任何疑惑可以回复我~
  • 提问者 慕妹9542440 #1
    您好老师,消费者消监听到消息后的消费逻辑,以及补偿逻辑是怎样的。
    回复 有任何疑惑可以回复我~ 2025-10-08 10:03:49
  • 风间影月 回复 提问者 慕妹9542440 #2
    一、消费者核心消费逻辑
    监听消息队列,解析消息内容。
    根据消息类型执行操作:如果是 UPDATE:从数据库查询最新数据 → 更新或重建缓存。如果是 DELETE:直接删除缓存对应的Key。
    保证幂等性,例如使用消息ID做去重。
    
    二、补偿逻辑
    用于处理消费失败、缓存更新异常、或者消息丢失的情况。
    消费失败后,消息队列自动或手动重试(例如 RocketMQ 的 retry 次数)。
    如果多次失败,进入“死信队列”。
    定时任务扫描死信队列,将消息重新投递或人工介入处理。
    定期扫描缓存与数据库版本或时间戳不一致的数据。
    对比差异后,自动修正缓存。
    回复 有任何疑惑可以回复我~ 2025-10-09 14:16:32
  • 提问者 慕妹9542440 #3
    非常感谢!
    回复 有任何疑惑可以回复我~ 2025-10-10 15:28:32
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号