#1 前言java
系列目录spring
对于咱们这种初学者,可能会使用spring带给咱们的@Transactional,可能了解JTA,可能会使用jotm、atomikos,又会遇到一些名词XA,支持XA的数据库驱动等等诸多问题,而后就会越发混乱,天然造成一个疑问,庞大的事务体系的全貌究竟是什么样?数据库
#2 须要解决的疑惑编程
下面就要具体列出一系列须要解决的问题tomcat
##2.1 对于事务模型服务器
##2.2 spring对于事务模型的支持框架
spring本身的一系列接口设计:分布式
等等源码分析
上述一系列接口的实现是如何对非分布式和分布式事务的支持的呢?atom
##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 非分布式事务
##3.2 分布式事务的一系列概念
##3.3 JTA的实现
#4 结束语
我也是最近才开始接触下分布式事务,不少内容也都没弄清楚,有些地方不免第一次认识错误,还请批评指正。像我同样对整个事务体系不是很了解的同窗能够一块儿来研究讨论,共同进步。