分散式事務--CAP

00潤物無聲00發表於2017-07-09
  資料庫軟體對單機ACID支援到位,但是進行水平或者垂直拆分之後,就變成了多機,需要面對多個資料庫的節點,就出現了分散式事務的問題。


  分散式事務:事務的參與者,支援事務的伺服器,資源伺服器以及事務管理器分別位於分散式系統的不同節點上。在分散式十五中,有多個節點參與。


  分散式事務處理模型 X/Open DTP模型,定義了3個元件Application Program(AP),Resource Manager(RM),Transaction Manager(TM).在三個元件中,AP可以和TM和RM通訊,TM和RM可以通訊,同時還有XA介面,TM和RM使用XA進行雙向通訊。

CAP理論:

  資料的一致性(Consistency):所有節點在同一時間讀到同樣的資料。
  資料的可用性(Availability):保證無論是成功還是失敗,每個請求都能夠收到一個反饋,系統一定要有響應。
  分割槽容忍性(Partition-Tolerance):系統有部分問題或者有訊息的丟失,但是系統仍能夠繼續執行。


分散式系統中不能同時滿足三項,我們在進行系統設計是進行權衡選擇 CA,AP或者CP
  CA:放棄分割槽容忍,加強一致性和可用性。這是傳統單機資料庫的選擇
  AP:放棄一致性,追求分割槽容忍和可用性。這是很多分散式系統設計時的選擇
  CP:放棄可用性,追求一致性和分割槽容忍性。可用性比較低,系統不穩定。


在分散式系統中,我們通常會選擇AP,但並不代表放棄一致性,而是通過其他手段補償一致性。保證最終一致性。

  

Paxos協議是解決系統一致性問題的方案

  該方案的前提是有一個可信的通訊環境,保證資訊都是準確,沒有被篡改。
  該方案的核心是:少數服從多數


  從工程上,儘量避免分散式事務的引入,如果引入分散式事務,可考慮最終一致性,通過補償機制不斷重試,讓操作進行到底,而不是回滾。

相關文章