vlambda博客
学习文章列表

JTA分布式事务管理

        

    JTA(Java Transaction Manager)java事务管理,在单一数据源时,可以不用这个jta,jta对应的是多个数据源的事务管理,保证数据的一致性,原子性。

        JTA是如何实现多数据源的事务管理呢?

主要的原理是两阶段提交,当整个业务完成了之后只是第一阶段提交,在第二阶段提交之前会检查其他所有事务是否已经提交,如果前面出现了错误或是没有提交,那么第二阶段就不会提交,而是直接rollback操作,这样所有的事务都会做Rollback操作.

JTA的有点就是能够支持多数据库事务同时事务管理,满足分布式系统中的数据的一致性.但是也有对应的弊端:

1 两阶段提交

2 事务时间太长,锁数据太长

3 低性能,低吞吐量


但是JTA也有比较严重的性能问题,由于同时操作多个数据源,如果其中一个数据源获取数据的时间过长,会导致整个请求都非常的长,因此现实中对性能要求比较高的系统较少使用JTA事务管理.

常用分布式系统事务管理实现高性能和高吞吐的方式是Spring事务同步机制以及牺牲掉事务的暂时一致性,而保证事务的最终一致性.