传统项目中,比如项目中使用到多数据源的时候大多数采用jta+Atomikos解决分布式事务问题,jta+Atomikos底层是基于XA协议的两阶段提交方案。
XA协议:XA 事务的基础是两阶段提交协议。需要有一个事务协调者来保证所有的事务参与者都完成了准备工作(第一阶段)。如果协调者收到所有参与者都准备好的消息,就会通知所有的事务都可以提交了(第二阶段)。Mysql 在这个XA事务中扮演的是参与者的角色,而不是协调者(事务管理器)。
JTA:JTA(java Transaction API)是JavaEE 13 个开发规范之一。java 事务API,允许应用程序执行分布式事务处理——在两个或多个网络计算机资源上访问并且更新数据。JDBC驱动程序的JTA支持极大地增强了数据访问能力。事务最简单最直接的目的就是保证数据的有效性,数据的一致性
Atomikos:Atomikos TransactionsEssentials 是一个为Java平台提供增值服务的并且开源类事务管理器
演示jta+atomikos项目
分布式事务解决方案采用Atomikos 后台管理系统
参考:https://www.cnblogs.com/toov5/p/9820227.html
将参与者 连接到同一个协调者 所有的DataSource关联到一起
xaDataSource.XX 各种神操作
不适合微服务~
分布式事务解决方案采用Atomikos 后台管理系统
主流数据库 都遵循 协调者 发送消息 给参与者 的差异协议 Atomic就是遵循这个协议的Java框架
jta Java语言操作事务