目錄
簡介
BASE 理論的核心思想
BASE 理論三要素
1. 基本可用
2. 軟狀態
3. 最終一致性
總結
簡介
BASE 是 Basically Available(基本可用) 、Soft-state(軟狀態) 和 Eventually Consistent(最終一致性) 三個短語的縮寫。BASE 理論是對 CAP 中一致性 C 和可用性 A 權衡的結果,其來源于對大規模互聯網系統分布式實踐的總結,是基于 CAP 定理逐步演化而來的,它大大降低了我們對系統的要求。
BASE 理論的核心思想
即使無法做到強一致性,但每個應用都可以根據自身業務特點,采用適當的方式來使系統達到最終一致性。
也就是犧牲數據的一致性來滿足系統的高可用性,系統中一部分數據不可用或者不一致時,仍需要保持系統整體“主要可用”。
BASE 理論本質上是對 CAP 的延伸和補充,更具體地說,是對 CAP 中 AP 方案的一個補充。
為什么這樣說呢?
CAP 理論這節我們也說過了:
如果系統沒有發生“分區”的話,節點間的網絡連接通信正常的話,也就不存在 P 了。這個時候,我們就可以同時保證 C 和 A 了。因此,如果系統發生“分區”,我們要考慮選擇 CP 還是 AP。如果系統沒有發生“分區”的話,我們要思考如何保證 CA 。
因此,AP 方案只是在系統發生分區的時候放棄一致性,而不是永遠放棄一致性。在分區故障恢復后,系統應該達到最終一致性。這一點其實就是 BASE 理論延伸的地方。
BASE 理論三要素
1. 基本可用
基本可用是指分布式系統在出現不可預知故障的時候,允許損失部分可用性。但是,這絕不等價于系統不可用。
什么叫允許損失部分可用性呢?
-
響應時間上的損失: 正常情況下,處理用戶請求需要 0.5s 返回結果,但是由于系統出現故障,處理用戶請求的時間變為 3 s。
-
系統功能上的損失:正常情況下,用戶可以使用系統的全部功能,但是由于系統訪問量突然劇增,系統的部分非核心功能無法使用。
2. 軟狀態
軟狀態指允許系統中的數據存在中間狀態(CAP 理論中的數據不一致),并認為該中間狀態的存在不會影響系統的整體可用性,即允許系統在不同節點的數據副本之間進行數據同步的過程存在延時。
3. 最終一致性
最終一致性強調的是系統中所有的數據副本,在經過一段時間的同步后,最終能夠達到一個一致的狀態。因此,最終一致性的本質是需要系統保證最終數據能夠達到一致,而不需要實時保證系統數據的強一致性。
分布式一致性的 3 種級別:
強一致性 :系統寫入了什么,讀出來的就是什么。
弱一致性 :不一定可以讀取到最新寫入的值,也不保證多少時間之后讀取到的數據是最新的,只是會盡量保證某個時刻達到數據一致的狀態。
最終一致性 :弱一致性的升級版,系統會保證在一定時間內達到數據一致的狀態。
業界比較推崇是最終一致性級別,但是某些對數據一致要求十分嚴格的場景比如銀行轉賬還是要保證強一致性。
總結
ACID 是數據庫事務完整性的理論,CAP 是分布式系統設計理論,BASE 是 CAP 理論中 AP 方案的延伸。