XA协议
XA协议是由X/Open组织提出的分布式事务的规范,由一个事务管理器(TM)和多个资源管理器(RM)组成。提交分为两个阶段:prepare 和 commit。
第一阶段 prepare
左边是一个事务管理器TM,右边是资源管理器RM。第一阶段,事务管理器先向资源管理器发送准备要求。如果资源管理器可以准备好,就向事务管理器发送ready。如果准备失败,事务管理器则会进行回滚。
第二阶段 commit
如果第一阶段都准备好了,那么就会进入第二阶段。
优点
- 保证数据强一致性
- commit阶段出现问题
- 效率低下,性能与本地事务相差较大
使用要求
- MySql5.7及以上均支持XA协议。
- MySql Connector/J 5.0以上 支持XA协议 Java系统中,数据源此阿勇Atomikos。