分布式系統的CAP和BASE理論


1. 背景

網絡分區:俗稱“腦裂”。當網絡發生異常情況,導致分布式系統中部分節點之間的網絡延時不斷變大,最終導致組成分布式系統的所有節點中,只有部分節點之間能夠進行正常通信,而另一些節點則不能。

當網絡分區出現時,分布式系統會出現局部小集群。

2. CAP

CAP理論指的是在一個分布式系統中,不可能同時滿足Consistency(一致性)、Availablity(可用性)、Partition tolerance(分區容錯性)這三個基本需求,最多只能滿足其中的兩項。

2.1 一致性(C)

數據在多個副本之間是否能夠保持一致的特性。當執行數據更新操作后,仍然可保證數據處於一致的狀態。

2.2 可用性(A)

系統提供的服務必須一直處於可用的狀態。對於用戶的每一個操作情況總是能夠在有限的時間內返回結果。這個有限時間是系統設計之初就指定好的系統運行指標。返回的結果指的是系統返回用戶的一個正常響應結果,而不是系統錯誤信息。

2.3 分區容錯性(P)

分布式系統在遇到任何網絡分區故障的時候,仍然需要能夠保證對外提供滿足一致性和可用性的服務,除非是整個網絡環境都發生了故障。

組成分布式系統的每個節點的加入與退出都可以看成是一個特殊的網絡分區。

注:一個分布式系統無法同時滿足這三個條件,只能滿足兩個,意味着我們要拋棄其中一項。

(1)CA,放棄P:將所有數據都放在一個分布式節點上,這同時放棄了系統的可擴展性。

(2)CP,放棄A:一旦系統遇到故障,受影響的服務器需要等待一段時間,在恢復期間無法對外提供正常的服務。

(3)AP,放棄C:這里的放棄一致性是指放棄數據強一致性,而保留數據的最終一致性。系統無法實時保持數據的一致性,但承諾在一個限定的時間內,數據最終能夠達到一致的狀態。

對於分布式系統而言,分區容錯性是一個最基本的要求,因為分布式系統中的組件必然需要部署到不同的節點 ,必然會出現子網絡,在分布式系統中,網絡問題是必定會出現的異常。

因此分布式系統只能在一致性(C)和可用性(A)之間進行權衡。

3. BASE

BASE理論是指,Basically Available(基本可用),Soft-state(軟狀態),Eventual Consistency(最終一致性)。是基於CAP定理演化而來,是對CAP中一致性和可用性權衡的結果。

核心思想:即使無法做到強一致性,但每個業務根據自身的特點,采用適當的方式來使系統達到最終一致性。

3.1 基本可用

指分布式系統在出現故障的時候,允許損失部分可用性,保證核心可用。但不等價於不可用。

3.2 軟狀態

軟狀態是指允許系統存在中間狀態,並且該中間狀態不會影響系統整體可用性。即允許系統在不同節點間副本同步的時候存在延時。

3.3 最終一致性

系統中的所有數據副本經過一定時間后,最終能夠達到一致的狀態,不需要實時保證系統數據的強一致性。最終一致性是弱一致性的一種特殊情況。

BASE理論面向的是大型高可用可擴展的分布式系統,通過犧牲強一致性來獲得可用性。

ACID是傳統數據庫常用的概念設計,追求強一致性模型。ACID,指數據庫事務正確執行的四個基本要素的:原子性(Atomicty)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)

 


免責聲明!

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



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