MQ消息丢失,消息一致性,重复消费解决方案

本文探讨了在分布式系统中,MQ如何实现事务消息以保证数据一致性,包括RocketMQ的事务消息机制。同时,文章详细阐述了如何确保消息不丢失和不被重复消费,提出了幂等性解决方案,如数据库唯一约束、更新数据的前置条件和检查操作。
摘要由CSDN通过智能技术生成

大家好,我是Leo。

这是开端的第三次循环了。当前正在正处于RocketMQ基础原理。

3万字聊聊什么是RocketMQ(一)

4万字聊聊阿里二面,保证你看不完

聊聊Redis面试题

2万字聊聊什么是秒杀系统(中)

3万字聊聊什么是Redis(完结篇)

3万字聊聊什么是MySQL(初篇)

本章概括

分布式事务

由何而来

我们在使用MQ在解决实际业务场景中的问题时,往往伴随诸多问题!比如如下图

上述两种可能都会导致数据不一致,在业务系统中是 致命的问题

这个时候我们就要保证事务消息。要不全部成功,要不全部失败。来达到订单服务,购物车服务的数据一致性!

对于购物车服务收到订单创建成功消息清理购物车这个操作来说,失败的处理比较简单,只要成功执行购物车清理后再提交消费确认即可,如果失败,由于没有提交消费确认,消息队列会自动重试。

解决了购物车服务问题,剩下的就是订单服务这边的创建订单,生产消息这两步了。要么全部成功,要么全部失败,不允许一个成功,一个失败的情况。

一旦订单控制不住,购物车那边也是控制不住的! 这就是事务需要解决的问题了!

什么是分布式事务

事务就是为了保证这些数据的完整性和一致性,我们希望这些更新操作要么全部成功,要么全部失败。这就是我们通过对事务的理解。如果严格来说,MQ的事务和MySQL一样,都具有四种属性 ACID

  1. 原子性:一个事务操作不可分割,要么成功&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值