消息队列实现分布式事务

消息队列中的“事务”,主要解决的是消息生产者和消息消费者的数据一致性问题。
电商下单步骤
1、生成订单
2、删除购物车
在分布式系统中, 任何一个步骤都有可能失败, 可能出现订单数据与购物车数据不一致的情况,比如说
1、创建了订单,没有清理购物车;
2、订单没创建成功,购物车里面的商品却被清掉了。

订单系统给消息队列发送订单消息并开启事务(此时订单消息并未被购物车系统可见)
订单系统执行本地事务,生成订单成功,给消息队列消息让其消息对购物车系统可见
购物车系统消费消息
在 RocketMQ 中的事务实现中,增加了事务反查的机制解决事务消息提交失败的问题
Broker 会定期去 Producer 上反查这个事务对应的本地事务的状态,然后根据反查结果决定提交或者回滚这个事务。

猜你喜欢

转载自blog.csdn.net/u010010600/article/details/108740626
今日推荐