JTA+SpringBoot多数据源事务一致性(一)

目录

 

一、背景

二、实现方式

三、什么是JTA

 四、JTA原理   


一、背景

      公司客户最近需要开发一个灵活配置多个数据源,并实现向多个数据源写数据,并保持各个数据源数据一致,要么都成功,要么都失败。要做到数据的强一致性。

二、实现方式

     针对客户的要求,同时考虑客户的服务器承载能力不是很高,并且客户对系统实时性要求不是很高,因此我们抛弃了阿里的seata分布式事务中间件,采用了不用安装任何第三方软件的JTA分布式事务。

三、什么是JTA

    java事务API(Java Transaction API,简称JTA),是一个Java企业版的应用程序接口。不过JTA只是提供了一个接口,并没有提供具体的实现。

  1.  常见JTA实现

  • J2EE容器所提供的JTA实现(JBoss)。
  • 独立的JTA实现:如JOTM,Atomikos。

 四、JTA原理   

要理解 JTA 的实现原理首先需要了解其架构:它包括事务管理器(Transaction Manager)和一个或多个支持 XA 协议的资源管理器 ( Resource Manager ) 两部分, 我们可以将资源管理器看做任意类型的持久化数据存储;事务管理器则承担着所有事务参与单元的协调与控制。

根据所面向对象的不同,我们可以将 JTA 的事务管理器和资源管理器理解为两个方面:面向开发人员的使用接口(事务管理器)和面向服务提供商的实现接口(资源管理器)。其中开发接口的主要部分即为上述示例中引用的 UserTransaction 对象,开发人员通过此接口在信息系统中实现分布式事务;而实现接口则用来规范提供商(如数据库连接提供商)所提供的事务服务,它约定了事务的资源管理功能,使得 JTA 可以在异构事务资源之间执行协同沟通。

以数据库为例,IBM 公司提供了实现分布式事务的数据库驱动程序,Oracle 也提供了实现分布式事务的数据库驱动程序, 在同时使用 DB2 和 Oracle 两种数据库连接时, JTA 即可以根据约定的接口协调者两种事务资源从而实现分布式事务。正是基于统一规范的不同实现使得 JTA 可以协调与控制不同数据库或者 JMS 厂商的事务资源,其架构如下图所示:

       下一章节开始介绍jta+Atomikos实现JDBC多数据源事务一致性。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值