名詞理解:
1.XA規(guī)范
XA是由X/Open組織提出的分布式事務(wù)的規(guī)范。
XA規(guī)范主要定義了(全局)事務(wù)管理器(Transaction Manager)和(局部)資源管理器(Resource Manager)之間的接口。XA接口是雙向的系統(tǒng)接口,在事務(wù)管理器(Transaction Manager)以及一個或多個資源管理器(Resource Manager)之間形成通信橋梁。XA引入的事務(wù)管理器充當上文所述全局事務(wù)中的“協(xié)調(diào)者”角色。事務(wù)管理器控制著全局事務(wù),管理事務(wù)生命周期,并協(xié)調(diào)資源。資源管理器負責控制和管理實際資源(如數(shù)據(jù)庫或JMS隊列)。
目前,Oracle、Informix、DB2、Sybase和PostgreSQL等各主流數(shù)據(jù)庫都提供了對XA的支持。
XA規(guī)范中,事務(wù)管理器主要通過以下的接口對資源管理器進行管理
xa_open,xa_close:建立和關(guān)閉與資源管理器的連接。
xa_start,xa_end:開始和結(jié)束一個本地事務(wù)。
xa_prepare,xa_commit,xa_rollback:預(yù)提交、提交和回滾一個本地事務(wù)。
xa_recover:回滾一個已進行預(yù)提交的事務(wù)。
2.JTA(Java Transaction API)
java 平臺上的事務(wù)規(guī)范接口
作為java平臺上事務(wù)規(guī)范JTA(Java Transaction API)也定義了對XA事務(wù)的支持,實際上,JTA是基于XA架構(gòu)上建模的。在JTA 中,事務(wù)管理器抽象為javax.transaction.TransactionManager接口,并通過底層事務(wù)服務(wù)(即Java Transaction Service)實現(xiàn)。像很多其他的Java規(guī)范一樣,JTA僅僅定義了接口,具體的實現(xiàn)則是由供應(yīng)商(如J2EE廠商)負責提供,目前JTA的實現(xiàn)主要有以下幾種:
J2EE容器所提供的JTA實現(xiàn)(如JBoss)。
獨立的JTA實現(xiàn):如JOTM(Java Open Transaction Manager),Atomikos。這些實現(xiàn)可以應(yīng)用在那些不使用J2EE應(yīng)用服務(wù)器的環(huán)境里用以提供分布事事務(wù)保證。
3. 2PC(Two Phase Commit)
解決跨數(shù)據(jù)庫的事務(wù)管理
提供分布式事務(wù)接口,提供跨數(shù)據(jù)庫連接的事務(wù)管理,二階段提交,是將事務(wù)的提交操作分成了prepare、commit兩個階段。其事務(wù)處理方式為:1、 在全局事務(wù)決定提交時,a)逐個向RM發(fā)送prepare請求;b)若所有RM都返回OK,則逐個發(fā)送commit請求最終提交事務(wù);否則,逐個發(fā)送rollback請求來回滾事務(wù);2、 在全局事務(wù)決定回滾時,直接逐個發(fā)送rollback請求即可,不必分階段。

假設(shè)有A、B、C三個數(shù)據(jù)庫,A作為一個事務(wù)發(fā)起者,稱為“主庫”,B和C則稱為”從庫”。假設(shè)需要執(zhí)行一個在A、B和C三個庫的某個表中插入一行數(shù)據(jù)的事務(wù)。
準備階段(Prepare Phase),A鎖定表,并將事務(wù)寫入自己的預(yù)寫日志;A將事務(wù)發(fā)給從庫B和C,B和C也各自鎖定自己的表,并把事務(wù)寫入預(yù)寫日志,完成后返回告訴A準備階段完成;
提交階段(Commit Phase),A開始執(zhí)行自己的事務(wù),并通知B和C提交事務(wù)。如果在這個過程中沒有任何錯誤,那么操作將在A、B和C庫中完成;如果發(fā)生錯誤,比如從庫C超時無響應(yīng),或者從庫C磁盤空間不足…A將通知所有參與事務(wù)的B和C回滾該事務(wù),并且回滾A自己的事務(wù)。
4.TCC(try-confirm-commit)
解決多個服務(wù)之間的分布式事務(wù)
針對的是業(yè)務(wù)層面的事務(wù),適用于微服務(wù)

https://blog.csdn.net/zhousenshan/article/details/72808855
https://blog.csdn.net/lileLife/article/details/84327098
https://yq.aliyun.com/articles/608872
https://yq.aliyun.com/articles/379964?spm=5176.10695662.1996646101.searchclickresult.29d9640bL61ohb#4