#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 結束語
我也是最近纔開始接觸下分佈式事務,不少內容也都沒弄清楚,有些地方不免第一次認識錯誤,還請批評指正。像我同樣對整個事務體系不是很瞭解的同窗能夠一塊兒來研究討論,共同進步。