RocketMq分布式事物
2020-05-29 10:04:48 0 举报
RocketMQ分布式事物消息流程
作者其他创作
大纲/内容
1. 半消息写入失败(步骤1失败):与MQ之间网络故障、超时、报错等原因,重试N次,仍然失败,记录错误日志,告诉支付系统给客户退款。2. 半消息写入成功,但是订单系统没有收到响应(步骤2失败):MQ会扫描处于半消息状态的消息,然后回调订单系统,查询该订单的状态,如果状态为已完成,订单系统再请求一下MQ,告诉MQ该条半消息执行成功,可以开放给消费者啦,反之删除该条半消息;订单系统告诉支付系统给客户退款3. 订单系统执行本地事物失败(步骤3失败):通知MQ,删除该条半消息,然后告诉支付系统给客户退款。4. 订单系统本地事物成功,告诉MQ开放半消息给消费者失败(步骤4失败):MQ会扫描处于半消息状态的消息,然后回调订单系统,查询该订单的状态,如果状态为已完成,订单系统再请求一下MQ,告诉MQ该条半消息执行成功,可以开放给消费者啦,反之删除该条半消息;订单系统告诉支付系统给客户退款
4.本地事物执行成功,通知MQ,MQ把半消息开放给消费者
5.消费者消费消息
MQ接收到半消息,消费者看不到该条半消息
MQ
红包系统
2.返回接收到半消息
订单系统
2PC
数据库
1.发送半消息
3 MQ返回成功,执行本地事物
收藏
收藏
0 条评论
下一页