CAP理論及base原理

CAP理論

CAP是Consistency,Availablity和partition-tolerance縮寫,分別是:

一致性(Consistency):數據一致更新,所有數據變動都是同步的。每次讀操作都能返回最新數據

Availability(可用性):好的響應性能,任何一個沒有發生故障的節點,會在合理的時間內返回一個正常的結果。

Partition tolerance(分區容忍性):可靠性,當節點間出現網絡分區,照樣可以提供服務。

CAP理論的核心是:一個分佈式系統不可能同時很好的滿足一致性,可用性和分區容錯性這三個需求,最多隻能同時較好的滿足兩個。

單機肯定不存在分區的問題,所以只能保證CA。對於分佈式系統,P肯定是佔的,當出現節點間往來中斷的情況,如果選擇一致性CP,意味著在網絡恢復,數據在節點間同步完成之前是不可用的;如果選擇可用性AP意味著我們放棄了各個節點直接的同步;在實際操作的時候一般的服務都要保證服務的可用性,所以一般會選擇AP,然後在網絡恢復後得到最終一致性。

根據CAP原理將NoSQL數據庫分成了滿足CA原則,滿足CP原則和滿足AP原則三大類:

CA--單點集群,滿足一致性,可用性的系統,通常在可擴展性上不太強大

CP--滿足一致性,分區容忍性的系統,通常性能不是特別高

AP--滿足可用性,分區容忍性的系統,通常可能對一致性要求低一些

CAP理論及base原理

BASE理論

base理論是對CAP理論的延伸,核心思想是即使無法做到強一致性(Strong Consistency,CAP理論的一致性就是強一致性),但應用可以採用合適的方式達到最終一致性(Eventual Consitency)。

BASE是指基本可用(Basically Available),軟狀態(Soft State),最終一致性(Eventual Consistency)

基本可用(Basically Available)

基本可用是指分佈式系統在出現故障的時候,允許損失部分可用性,既保證核心可用。電商大促時,為了應對訪問量激增,部分用戶可能會被引導到降級頁面,服務層也可能只提供降級服務,這既是損失部分可用性的體現。

軟狀態(Soft State)

軟狀態是指允許系統存在中間狀態,而該中間狀態不會影響系統整體可用性。分佈式存儲中一般一份數據至少會有三個副本,允許不同節點間副本同步的延時就是軟狀態的體現。mysql replication的異步複製也是一種體現。

最終一致性(Eventual Consistency)

最終一致性是指系統中的所有數據副本經過一定時間後,最終能夠達到一致的狀態。弱一致性和強一致性相反,最終一致性是弱一致性的一種特殊情況。


分享到:


相關文章: