概念
java事务API(Java Transaction API,简称JTA)是一个Java企业版的应用程序接口。不过JTA只是提供了一个接口,并没有提供具体的实现。
常见的JTA实现如下
- J2EE容器所提供的JTA实现(JBoss)
- 独立的JTA实现:如JOTM,Atomikos
二阶段提交协议
- 将各个库视为参与者,而将分布式事物管理器视为协调者
- 协调者对各参与者发起预提交请求
- 各参与者预提交后向协调者确认可以提交
- 协调者再对各参与者发起提交请求
- 各参与者提交事务,并向协调者确认提交成功
- 上述期间任何错误,都有可能造成各库数据全部回滚

三阶段提交协议(两阶段提交的升级版)

JTA的缺点
- 实现复杂,通常情况下,JTA UserTransaction需要从JNDI获取
- JTA本身就是个笨重的API
- 通常JTA只能在应用服务器环境下使用,因此使用JTA会限制代码的复用性
- JTA在实际开发中并不常用,业内主要采用MQ等异步方式解决一致性问题
来源:https://blog.csdn.net/xuanyuanjiaqi/article/details/100045164