在分布式系统调用场景中存在这样一个通用问题,即在执行一个核心业务逻辑的同时,还需要调用多个下游做业务处理,而且要求多个下游业务和当前核心业务必须同时成功或者同时失败,进而避免部分成功和失败的不一致情况出现。简单来说,消息队列中的“事务”,主要解决的是消息生产者和消费者的数据一致性问题。本篇文章通过拆解 RocketMQ 事务消息的使用场景、基本原理、实现细节,帮助大家更好的理解和使用 RocketMQ 的事务消息。
为什么需要事务消息
以电商交易场景为例,用户支付订单这一核心操作的同时会涉及到下游物流发货、积分变更、购物车状态清空等多个子系统的变更。当前业务的处理分支包括:
- 主分支订单系统状态更新:由未支付变更为支付成功;
- 物流系统状态新增:新增待发货物流记录,创建订单物流记录;
- 积分系统状态变更:变更用户积分,更新用户积分表;
- 购物车系统状态变更:清空购物车,更新用户购物车记录。
标签:RocketMQ,事务,队列,业务,购物车,消息,变更 From: https://www.cnblogs.com/xfeiyun/p/17433543.html