Album++:分散式事務專輯-XA 解決方案
XA 解決方案:↓↓↓
2PC的傳統方案是在資料庫層面實現的,如Oracle、MySQL都支援2PC協議,為了統一標準減少行業內不必要的對 接成本,
需要制定標準化的處理模型及介面標準,國際開放標準組織Open Group定義了分散式事務處理模型 DTP(Distributed Transaction Processing Reference Model)。
為了讓大家更明確XA方案的內容程,下面新使用者註冊送積分為例來說明:
執行流程如下:
1、應用程式(AP)持有使用者庫和積分庫兩個資料來源。
2、應用程式(AP)通過TM通知使用者庫RM新增使用者,同時通知積分庫RM為該使用者新增積分,RM此時並未提交事 務,此時使用者和積分資源鎖定。
3、TM收到執行回覆,只要有一方失敗則分別向其他RM發起回滾事務,回滾完畢,資源鎖釋放。
4、TM收到執行回覆,全部成功,此時向所有RM發起提交事務,提交完畢,資源鎖釋放。
DTP 模型定義如下角色:
AP(Application Program):即應用程式,可以理解為使用DTP分散式事務的程式。
RM (Resource Manager):即資源管理器,可以理解為事務的參與者,一般情況下是指一個數據庫例項,通過 資源管理器對該資料庫進行控制,資源管理器控制著分支事務。
TM (Transaction Manager):事務管理器,負責協調和管理事務,事務管理器控制著全域性事務,管理事務生命 週期,並協調各個RM。
全域性事務是指分散式事務處理環境中,需要操作多個數據庫共同完成一個工作,這個 工作即是一個全域性事務。
DTP 模型定義TM和RM之間通訊的介面規範叫XA,簡單理解為資料庫提供的2PC介面協議,基於資料庫的XA 協議來實現2PC又稱為XA方案。
以上三個角色之間的互動方式如下:
1)TM向AP提供 應用程式程式設計介面,AP通過TM提交及回滾事務。
2)TM交易中介軟體通過XA介面來通知RM資料庫事務的開始、結束以及提交、回滾等。
總結:
整個2PC的事務流程涉及到三個角色AP、RM、TM。
AP指的是使用2PC分散式事務的應用程式;RM指的是資 源管理器,它控制著分支事務;TM指的是事務管理器,它控制著整個全域性事務。
1)在準備階段RM執行實際的業務操作,但不提交事務,資源鎖定;
2)在提交階段TM會接受RM在準備階段的執行回覆,只要有任一個RM執行失敗,TM會通知所有RM執行回滾操 作,否則,TM將會通知所有RM提交該事務。提交階段結束資源鎖釋放。
XA方案的問題:
1、需要本地資料庫支援XA協議。
2、資源鎖需要等到兩個階段結束才釋放,效能較差。
Face your past without regret. Handle your present with confidence.Prepare for future without fear. keep the faith and drop the fear.
面對過去無怨無悔,把握現在充滿信心,備戰未來無所畏懼。保持信念,克服恐懼!一點一滴的積累,一點一滴的沉澱,學技術需要不斷的積澱!