1. 程式人生 > 其它 >Album++:分散式事務專輯-XA 解決方案

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.

面對過去無怨無悔,把握現在充滿信心,備戰未來無所畏懼。保持信念,克服恐懼!一點一滴的積累,一點一滴的沉澱,學技術需要不斷的積澱!