美文网首页
分布式事务-3

分布式事务-3

作者: 01010100 | 来源:发表于2018-03-06 11:00 被阅读24次

    JTA/JTS

    Java Transaction API

    Java事务API(Java Transaction API,简称JTA ) 是一个Java企业版 的应用程序接口,在Java环境中,允许完成跨越多个XA资源的分布式事务。

    JTA和它的同胞Java事务服务(JTS;Java TransactionService),为J2EE平台提供了分布式事务服务。

    不过JTA只是提供了一个接口,并没有提供具体的实现,而是由j2ee服务器提供商 根据JTS规范提供的,常见的JTA实现有以下几种:

    1.J2EE容器所提供的JTA实现(JBoss)

    2.独立的JTA实现:如JOTM,Atomikos.这些实现可以应用在那些不使用J2EE应用服务器的环境里用以提供分布事事务保证。如Tomcat,Jetty以及普通的java应用。

    标准的分布式事务

    一个分布式事务(Distributed Transaction)包括一个事务管理器(transaction manager)和一个或多个资源管理器(resource manager)。

    资源管理器(resource manager)是任意类型的持久化数据存储。

    事务管理器(transaction manager)承担着所有事务参与单元者的相互通讯的责任。

    JTA的优缺点

    JTA的优点很明显,就是提供了分布式事务的解决方案,严格的ACID。但是,标准的JTA方式的事务管理在日常开发中并不常用,

    因为他有很多缺点:

    实现复杂

    通常情况下,JTA UserTransaction需要从JNDI获取。这意味着,如果我们使用JTA,就需要同时使用JTA和JNDI。

    JTA本身就是个笨重的API

    通常JTA只能在应用服务器环境下使用,因此使用JTA会限制代码的复用性。

    总结

    Java事务的类型有三种:JDBC事务、JTA(Java Transaction API)事务、容器事务,其中JDBC的事务操作用法比较简单,适合于处理同一个数据源的操作。

    JTA事务相对复杂,可以用于处理跨多个数据库的事务,是分布式事务的一种解决方案。

    这里还要简单说一下,虽然JTA事务是Java提供的可用于分布式事务的一套API,但是不同的J2EE平台的实现都不一样,并且都不是很方便使用,

    所以,一般在项目中不太使用这种较为负责的API。现在业内比较常用的分布式事务解决方案主要有异步消息确保型、TCC、最大努力通知等。

    http://www.hollischuang.com/archives/1658

    https://www.ibm.com/developerworks/cn/java/j-lo-jta/index.html

    https://www.jianshu.com/p/e063858d94f2

    相关文章

      网友评论

          本文标题:分布式事务-3

          本文链接:https://www.haomeiwen.com/subject/zvelfftx.html