区别于阿里巴巴Seata,适用于单体应用连接多个数据源,处理分布式事务。
使用AtomikosDataSourceBean
为了便于事务处理的规范化配置,在JavaEE中提供了JTA(Java Transaction API,事务处理API)服务支持,该服务运行应用程序实行分布式事务处理。JTA仅仅是一个技术标准,要引入Atomikos开源组件实现具体事务管理操作。
Atomikos官网:https://www.atomikos.com/Main/WebHome
TransactionsEssentials免费开源版:实现JTA/XA规范,支持单体应用连接多数据源分布式事务管理。
ExtremeTransactions付费版:额外支持TCC,远程调用技术支持。
XA规范:由X/Open组织提出的分布式事务规范。XA规范主要定义了(全局)事务管理器(TM,Transaction Manager)和(局部)资源管理器(RM,Resource Manager)之间的接口,常用的主流关系型数据库产品已实现了XA接口标准。XA是一个基于二阶段提交的具体实现,在进行分布式事务处理中主要分为预备(Prepare)和提交(Commit)两个处理阶段,这两个阶段的具体作用如下:
预备阶段(Prepare):TM事务协调者向所有RM资源管理器发送预备(Prepare)指令,询问是否可以执行,RM资源管理器返回可执行或不可执行。
提交阶段(Commit):所有RM资源管理器都返回可执行,则向所有RM发现Commit指令。如果有一个RM返回不可执行,则向所有RM发送rollback指令。