【分布式事务系列】提出疑问和研究过程

#0 系列目录#java

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

#1 须要解决的疑惑# 下面就要具体列出一系列须要解决的问题。编程

##1.1 对于事务模型##tomcat

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

##1.2 Spring对于事务模型的支持##服务器

  • Spring本身的一系列接口设计:框架

  • PlatformTransactionManager 事务管理器分布式

  • TransactionDefinition 事务定义源码分析

  • TransactionStatus 事务状态atom

  • 等等.net

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

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

  • X/Open DTP模型是什么?几个重要的概念是什么?
  • XA规范是什么?
  • 2PC是什么?

##1.4 针对JTA##

  • JTA是什么?JTS又是什么?
  • JTA与上述的规范又是什么关系?
  • JTA的接口都有哪些?分别是什么做用
  • JTA接口中有一个javax.transaction.TransactionManager,如何理解它与上述的PlatformTransactionManager呢?即它们各自的职责是什么?

##1.5 对于JTA实现##

  • 分布式事务须要数据库和驱动程序支持的吗?仍是使用通常的数据库和驱动程序也能够实现分布式事务?
  • XADataSource与DataSource、XAConnection与Connection等等接口
  • 某些应用服务器没有实现JTA,如tomcat,某些应用服务器实现了JTA,如JBoss,具体是怎么实现的呢?
  • jotm、atomikos又是怎么来实现JTA的呢?需不须要数据库和驱动程序对XA的支持?
  • 2PC对于初学者常常沦为一种概念,在代码中是如何体现的呢?如何模拟2PC呢?

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

##2.1 非分布式事务##

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

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

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

##2.3 JTA的实现##

  1. jotm的例子,以及源码分析实现分布式事务的原理(如何体现2PC的过程)
  2. atomikos对非XADataSource和XADataSource的支持的例子,以及源码分析实现分布式事务的原理(如何体现2PC的过程)
  3. JBoss支持分布式事务的原理
相关文章
相关标签/搜索