总概
分布式事务按照一致性分为强一致性事务和弱一致性事务。其中强一致性事务介绍XA事务。弱一致性事务介绍3大柔性事务:TCC,AT,SAGA。这四大事务模型都属于基于2PC提交协议的事务模型。
二阶段提交协议
分布式的二阶段提交协议分成了事务协调者事务管理器TM,事务参与者资源管理器。事务管理器分两个阶段来协调资源管理器,第一阶段准备资源,也就是预留事务所需的资源,如果每个资源管理器都资源预留成功,则进行第二阶段资源提交,否则协调资源管理器回滚资源。
XA事务
XA事务是基于数据库本身支持的协议。是在现有本地事务模型基础上进行了扩展。
基本流程:
事务管理器TM开启全局事务,
第一阶段,每一个数据库事务完成后,预提交,并通知TM,把结果给TM。TM等所有分支事务操作完成、都预提交后,进行第二步;
第二阶段:TM通知每个数据库进行逐个commit/rollback。
对于每个mysql内部:
注意: mysql5.7之前,在处于等待第二阶段commit时,服