JTA分布式事务管理

Posted 程序员十五年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JTA分布式事务管理相关的知识,希望对你有一定的参考价值。

        

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

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

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

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

1 两阶段提交

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

3 低性能,低吞吐量


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

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




以上是关于JTA分布式事务管理的主要内容,如果未能解决你的问题,请参考以下文章

分布式事务使用atomikos+jta解决分布式事务问题

REST微服务的分布式事务实现-分布式系统事务以及JTA介绍

分布式事务 两阶段提交及JTA

源码福利----分布式事务操作之Spring+JTA+mybatis

JTA分布式事务实战

分布式事务操作之Spring+JTA