采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师您好,如果使用消息队列实现双写一致,它的步骤应该是怎么样的?和双删方案比优势在哪里?
1. 业务写入数据库
2. 发送更新事件到消息队列
3. 消费者服务订阅消息队列
4. 异常补偿机制
一致性保障比双删更强一些,达到最终一致性,但是实现比较复杂,双删实现更简单方便(阿里内部很多地方就是用的双删或三删)
您好老师,消费者消监听到消息后的消费逻辑,以及补偿逻辑是怎样的。
一、消费者核心消费逻辑 监听消息队列,解析消息内容。 根据消息类型执行操作:如果是 UPDATE:从数据库查询最新数据 → 更新或重建缓存。如果是 DELETE:直接删除缓存对应的Key。 保证幂等性,例如使用消息ID做去重。 二、补偿逻辑 用于处理消费失败、缓存更新异常、或者消息丢失的情况。 消费失败后,消息队列自动或手动重试(例如 RocketMQ 的 retry 次数)。 如果多次失败,进入“死信队列”。 定时任务扫描死信队列,将消息重新投递或人工介入处理。 定期扫描缓存与数据库版本或时间戳不一致的数据。 对比差异后,自动修正缓存。
非常感谢!
登录后可查看更多问答,登录/注册
高性能多级网关与多级缓存架构落地实战
329 6
63 4
4.4k 3
202 3
216 3
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号