文档章节

分布式事务系列(开篇)提出疑问和研究过程

乒乓狂魔
 乒乓狂魔
发布于 2015/05/12 06:27
字数 996
阅读 5886
收藏 134

#1 前言

系列目录

对于我们这种初学者,可能会使用spring带给我们的@Transactional,可能了解JTA,可能会使用jotm、atomikos,又会遇到一些名词XA,支持XA的数据库驱动等等诸多问题,然后就会愈加混乱,自然形成一个疑问,庞大的事务体系的全貌到底是什么样?

#2 需要解决的疑惑

下面就要具体列出一系列需要解决的问题

##2.1 对于事务模型

  • 三种事务模型是什么?各自的特点是什么?各自的缺陷是什么?

##2.2 spring对于事务模型的支持

  • spring自己的一系列接口设计:

    • PlatformTransactionManager 事务管理器
    • TransactionDefinition 事务定义
    • TransactionStatus 事务状态

    等等

  • 上述一系列接口的实现是如何对非分布式和分布式事务的支持的呢?

##2.3 针对分布式事务的规范

  • X/Open DTP模型是什么?几个重要的概念是什么?

  • XA规范是什么?

  • 2PC是什么?

##2.4 针对JTA

  • JTA是什么?JTS又是什么?

  • JTA与上述的规范又是什么关系?

  • JTA的接口都有哪些?分别是什么作用

  • JTA接口中有一个javax.transaction.TransactionManager,如何理解它与上述的PlatformTransactionManager呢?即它们各自的职责是什么?

##2.5 对于JTA实现

  • 分布式事务需要数据库和驱动程序支持的吗?还是使用一般的数据库和驱动程序也可以实现分布式事务?

  • XADataSource与DataSource、XAConnection与Connection等等接口

  • 某些应用服务器没有实现JTA,如tomcat,某些应用服务器实现了JTA,如JBoss,具体是怎么实现的呢?

  • jotm、atomikos又是怎么来实现JTA的呢?需不需要数据库和驱动程序对XA的支持?

  • 2PC对于初学者经常沦为一种概念,在代码中是如何体现的呢?如何模拟2PC呢?

#3 研究过程

先从非分布式事务开始,趁机理解Spring对于事务的支持原理,然后过渡到分布式事务,理解分布式事务的概念,源码分析分布式事务框架jotm、atomikos,理解它们实现分布式事务的原理。

##3.1 非分布式事务

  • 1 jdbc事务开发的缺点
  • 2 spring实现的编程式事务原理
  • 3 spring利用AOP实现的声明式事务的接口设计与实现原理,为后面与jotm、atomikos的集成做铺垫
  • 4 深刻理解了上面的例子后,再来看事务的三种模型,各自的特点、各自的缺陷

##3.2 分布式事务的一系列概念

  • 1 X/Open DTP模型、XA规范、2PC
  • 2 JTA、JTS概念
  • 3 JTA接口定义的理解

##3.3 JTA的实现

  • 1 jotm的例子,以及源码分析实现分布式事务的原理(如何体现2PC的过程)
  • 2 atomikos对非XADataSource和XADataSource的支持的例子,以及源码分析实现分布式事务的原理(如何体现2PC的过程)
  • 3 JBoss支持分布式事务的原理

#4 结束语

我也是最近才开始接触下分布式事务,很多内容也都没弄清楚,有些地方难免第一次认识错误,还请批评指正。像我一样对整个事务体系不是很了解的同学可以一起来研究讨论,共同进步。

© 著作权归作者所有

共有 人打赏支持
乒乓狂魔
粉丝 1016
博文 105
码字总数 271356
作品 0
长宁
程序员
私信 提问
加载中

评论(6)

许雷神
许雷神
很感谢。。。。谢谢。。。。
i
iman123
赞,支持一下!!!13
令飞
令飞
赞,思路很清晰
amyoun10086
amyoun10086
6
乒乓狂魔
乒乓狂魔

引用来自“韦浩宇”的评论

说点什么呢
?
韦浩宇
韦浩宇
说点什么呢
分布式架构_Index

分布式设计与开发 CAP原理和最终一致性(Eventually Consistency) 分布式算法 [分布式Paxos算法] 分布式一致性Hash算法 轮循算法(Round Robin) Hash求余算法(Hash) 最少连接算法(Least C...

陶邦仁
2015/12/07
1K
0
【分布式事务系列】提出疑问和研究过程

分布式事务 【分布式事务系列】提出疑问和研究过程 对于我们这种初学者,可能会使用Spring带给我们的@Transactional,可能了解JTA,可能会使用jotm、atomikos,又会遇到一些名词XA,支持XA的...

陶邦仁
2015/12/09
418
0
分布式事务系列(4.1)Atomikos的分布式案例

1 系列目录 - 分布式事务系列(开篇)提出疑问和研究过程- 分布式事务系列(1.1)Spring事务管理器PlatformTransactionManager源码分析- 分布式事务系列(1.2)Spring事务体系- 分布式事务系...

乒乓狂魔
2015/06/01
0
3
分布式事务系列(3.1)jotm的分布式案例

1 系列目录 - 分布式事务系列(开篇)提出疑问和研究过程- 分布式事务系列(1.1)Spring事务管理器PlatformTransactionManager源码分析- 分布式事务系列(1.2)Spring事务体系- 分布式事务系...

乒乓狂魔
2015/05/25
0
5
分布式事务系列(1.1)Spring事务管理器PlatformTransactionManager

1 系列目录 - 分布式事务系列(开篇)提出疑问和研究过程- 分布式事务系列(1.1)Spring事务管理器PlatformTransactionManager源码分析- 分布式事务系列(1.2)Spring事务体系- 分布式事务系...

乒乓狂魔
2015/05/15
0
21

没有更多内容

加载失败,请刷新页面

加载更多

Windows 上安装 Scala

在安装 Scala 之前需要先安装 Java 环境,具体安装的详细方法就不在这里描述了。 您可以自行搜索我们网站中的内容获得其他网站的帮助来获得如何安装 Java 环境的方法。 接下来,我们可以从 ...

honeymose
今天
1
0
数据库篇多表操作

第1章 多表操作 实际开发中,一个项目通常需要很多张表才能完成。例如:一个商城项目就需要分类表(category)、商品表(products)、订单表(orders)等多张表。且这些表的数据之间存在一定的关系...

stars永恒
今天
3
0
nginx日志自动切割

1.日志配置(Nginx 日志) access.log----记录哪些用户,哪些页面以及用户浏览器,IP等访问信息;error.log------记录服务器错误的日志 #配置日志存储路径:location / {      a...

em_aaron
昨天
5
0
java 反射

基本概念 RTTI,即Run-Time Type Identification,运行时类型识别。RTTI能在运行时就能够自动识别每个编译时已知的类型。   要想理解反射的原理,首先要了解什么是类型信息。Java让我们在运...

细节探索者
昨天
2
0
推荐转载连接

https://www.cnblogs.com/ysocean/p/7409779.html#_label0

小橙子的曼曼
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部