分布式事务方案
2020-06-18 18:35:55 2 举报
分布式事务解决方案(XA、TCC、本地消息表、可靠消息最终一致性)
作者其他创作
大纲/内容
定时任务
第一阶段
系统B
系统A
cancel阶段
TCC方案
发送消息
服务A
可靠消息最终一致性方案
资源管理器A(数据库)
如果系统B上面的事务执行失败,则通过服务调用回滚代码当然,也可以采取别的方式反正就是想尽办法通知系统A回滚事务
执行事务消息表插入记录事务执行完毕,更新消息表状态
消费消息
注册
事务管理器(应用程序)
confirm阶段
MQ
confirm,执行,出现异常
confirm,执行
服务调用,事务执行成功,更新消息表A的状态
cancel,调用回滚事务的代码片段
数据库B
XA方案
询问过程中,任意一个资源管理器执行失败,事务回滚
数据库A
定时任务轮询消息表中执行失败的记录,重新发送消息
询问
服务B
执行本地事务
资源管理器C(数据库)
第二阶段
服务注册中心
MQ接收到confirm消息后,才让系统B消费消息
消息表A
发现
本地消息表方案
执行
RocketMQ
资源管理器B(数据库)
try,锁定资源
服务C
消息表B可以起到防重复消费消息的作用
注册更新消息表的服务
消息表B
发送confirm消息
发送prepared消息
执行事务消息表插入记录
try阶段
服务调用
0 条评论
下一页