SpringCloudAlibaba集成RocketMQ实现分布式事务事例(一)
业务需求
用户请求订单微服务 order-service 接口删除订单(退货),删除订单时需要调用 account-service的方法给账户增加余额,一个典型的分布式事务问题。
代码实现
事务消息有三种状态:
- TransactionStatus.CommitTransaction:提交事务消息,消费者可以消费此消息
- TransactionStatus.RollbackTransaction: 回滚事务,它代表该消息将被删除,不允许被消费。
- TransactionStatus.Unknown :中间状态,它代表需要检查消息队列来确定状态。
基础配置
在开始代码之前首先需要搭建好的RocketMQ环境
- 在Order-Service和Account-Service中引入Rocket消息组件
<dependency>