1、XA事务
事务协调/管理者
因为XA 事务是基于两阶段提交协议的,所以需要有一个事务协调者(transaction manager)来保证所有的事务参与者都完成了准备工作(第一阶段)。如果事务协调者(transaction manager)收到所有参与者都准备好的消息,就会通知所有的事务都可以提交了(第二阶段)
————————————————
版权声明:本文为CSDN博主「夏目 "」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wuzhiwei549/article/details/79925618/
分布式事务实战--一个完整的xa例子 - dongfuye - 博客园
2、TCC事务
业务上处理.
-
先是服务调用链路依次执行Try逻辑
-
如果都正常的话,TCC分布式事务框架推进执行Confirm逻辑,完成整个事务
-
如果某个服务的Try逻辑有问题,TCC分布式事务框架感知到之后就会推进执行各个服务的Cancel逻辑,撤销之前执行的各种操作
这就是所谓的TCC分布式事务。
3、AT事务
seata框架
RM(Resource Manager,资源管理器) 都会向 TC(Transaction Coordinator,事务协调器)
TM事务管理者
在 Seata 中,分布式事务的执行流程:
- TM 开启分布式事务(TM 向 TC 注册全局事务记录);
- 按业务场景,编排数据库、服务等事务内资源(RM 向 TC 汇报资源准备状态 );
- TM 结束分布式事务,事务一阶段结束(TM 通知 TC 提交/回滚分布式事务);
- TC 汇总事务信息,决定分布式事务是提交还是回滚;
- TC 通知所有 RM 提交/回滚 资源,事务二阶段结束。
2021年为了去阿里,准备了120道Java高级面试题_哔哩哔哩_bilibili
4、AT事务大致原理
connection 拦截,返回自定义connection,封装commit rollback,加入异步线程等待TC通知 wait,等到TC通知后再执行。