CPA理論與Base理論


CPA理論:

由於對系統或者數據進行了拆分,我們的系統不再是單機系統,而是分布式系統,針對分布式系統的CAP原理包含如下三個元素。

C:Consistency,一致性。在分布式系統中的所有數據 備份,在同一時刻具有同樣的值,所有節點在同一時刻讀取的數據都是最新的數據副本。

P: Partition tolerance,分區容忍性。盡管網絡上有部分消息丟失,但系統仍然可繼續工作。

A:Availability,可用性,好的響應性能。完全的可用性指的是在任何故障模型下,服務都會在有限的時間內處理完成並進行響應。

CAP原理指的是,這三個要素最多只能同時實現兩點,不可能三者兼顧。因此在進行分布式架構設計時,必須做出取舍。而對於分布式數據系統,分區容忍性是基本要求,否則就失去了價值。因此設計分布式數據系統,就是在一致性和可用性之間取一個平衡。對於大多數web應用,其實並不需要強一致性,因此犧牲一致性而換取高可用性,是目前多數分布式數據庫產品的方向。 當然,犧牲一致性,並不是完全不管數據的一致性,否則數據是混亂的,那么系統可用性再高分布式再好也沒有了價值。犧牲一致性,只是不再要求關系型數據庫中的強一致性,而是只要系統能達到最終一致性即可,考慮到客戶體驗,這個最終一致的時間窗口,要盡可能的對用戶透明,也就是需要保障“用戶感知到的一致性”。通常是通過數據的多份異步復制來實現系統的高可用和數據的最終一致性的,“用戶感知到的一致性”的時間窗口則取決於數據復制到一致狀態的時間。

BASE理論:

Basically Available(基本可用)、Soft-state( 軟狀態/柔性事務)、Eventual Consistency(最終一致性)。

是基於CAP定理演化而來,是對CAP中一致性和可用性權衡的結果。核心思想:即使無法做到強一致性,但每個業務根據自身的特點,采用適當的方式來使系統達到最終一致性。 1、基本可用:指分布式系統在出現故障的時候,允許損失部分可用性,保證核心可用。但不等價於不可用。比如:搜索引擎0.5秒返回查詢結果,但由於故障,2秒響應查詢結果;網頁訪問過大時,部分用戶提供降級服務,等。 2、軟狀態:軟狀態是指允許系統存在中間狀態,並且該中間狀態不會影響系統整體可用性。即允許系統在不同節點間副本同步的時候存在延時。 3、最終一致性: 系統中的所有數據副本經過一定時間后,最終能夠達到一致的狀態,不需要實時保證系統數據的強一致性。最終一致性是弱一致性的一種特殊情況。BASE理論面向的是大型高可用可擴展的分布式系統,通過犧牲強一致性來獲得可用性。ACID是傳統數據庫常用的概念設計,追求強一致性模型。

分布式事務流程:

  

柔性事務與剛性事務

柔性事務滿足BASE理論(基本可用,最終一致)

剛性事務滿足ACID理論 本文主要圍繞分布式事務當中的柔性事務的處理方式進行討論。

柔性事務分為

1. 兩階段型

2. 補償型

3. 異步確保型

4. 最大努力通知型幾種。

由於支付寶整個架構是SOA架構,因此傳統單機環境下數據庫的ACID事務滿足了分布式環境下的業務需要,以上幾種事務類似就是針對分布式環境下業務需要設定的。

二階段提交協議

 

第一階段: 准備階段:協調者向參與者發起指令,參與者評估自己的狀態,如果參與者評估指令可以完成,則會寫redo或者undo日志,讓后鎖定資源,執行操作,但並不提交。 第二階段:如果每個參與者明確返回准備成功,則協調者向參與者發送提交指令,參與者釋放鎖定的資源,如何任何一個參與者明確返回准備失敗,則協調者會發送中指指令,參與者取消已經變更的事務,釋放鎖定的資源。

兩階段提交方案應用非常廣泛,幾乎所有商業OLTP數據庫都支持XA協議。但是兩階段提交方案鎖定資源時間長,對性能影響很大,基本不適合解決微服務事務問題。 缺點:如果協調者宕機,參與者沒有協調者指揮,則會一直阻塞。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM