020_取消订单链路数据一致性问题分析(事务消息原理)
2022-04-03 17:42:31 0 举报
取消订单链路数据一致性问题分析(事务消息原理)
作者其他创作
大纲/内容
第三方物流平台
更新
实体仓库
支付完成回调
互斥
库存服务
发送取消订单退款消息
用户
取消配送
完成支付
注册全局事务分配xid异常,全局事务回滚
获取本地锁执行本地更新
订单服务取消订单退款消费者
RocketMQ消息中间件集群
实际退款
MySQL营销数据库
货物还原
配送开始(拦截失败)
仓储服务
物流配送单
获取全局锁提交本地事务释放本地锁
消费消息
投递实际退款处理事务消息
MySQL仓储数据库
发送释放资产事务消息
场景:MQ投递成功取消订单链路失败或者消息丢失
更新订单售后信息
MySQL履约数据库
seata
拦截失败
注册分支事务分配branch id上报分支事务成功
分布式锁
仓管人员
订单服务实际退款消费者
MySQL库存数据库
MySQL物流数据库
物流服务
取消订单
订单服务内部释放资产消息消费者
取消出库
Seata Server
场景:更新异常
履约服务
支付服务
更新异常
出库取消
Seata AT模式刚性事务保证(拦截失败、更新异常)
发送释放优惠券消息
营销服务
MySQL订单数据库
场景:配送开始拦截失败
释放资产消息消费者消费消息,发送多路MQ实现高扩展性
支付
记录订单售后信息
拦截履约
第三方支付平台
插入undo log
物流人员
订单服务
发送释放库存消息
监听消费
收藏
收藏
0 条评论
下一页