BASE 是 Basically Available(基本可用)、Soft state(軟狀態)和
Eventually consistent(最終一致性)三個短語的簡寫。是 CAP 定理對於一
致性與可用性權衡的結果。
BASE 理論的核心思想是:即使無法做到強一致性,但每個系統都可以根據自身的業務
特點,採用適當的方式來使系統達到最終一致性。
- (1) 基本可用
基本可用是指分佈式系統在出現不可預知故障的時候,允許損失部分可用性。- 響應時間的損失:
- 功能上的損失:
- (2) 軟狀態
- 軟狀態,是指允許系統數據存在的中間狀態,並認爲該中間狀態的存在不會影響系統的
整體可用性,即允許系統主機間進行數據同步的過程存在一定延時。軟狀態,其實就是一種
灰度狀態,過渡狀態。
- 軟狀態,是指允許系統數據存在的中間狀態,並認爲該中間狀態的存在不會影響系統的
- (3) 最終一致性
- 最終一致性強調的是系統中所有的數據副本,在經過一段時間的同步後,最終能夠達到
一個一致的狀態。因此,最終一致性的本質是需要系統保證最終數據能夠達到一致,而不需
要實時保證系統數據的強一致性。
- 最終一致性強調的是系統中所有的數據副本,在經過一段時間的同步後,最終能夠達到
舉例
1.6.3 ZK 與 CP
zk 遵循的是 CP 原則,即保證了一致性,但犧牲了可用性。體現在哪裏呢?
當 Leader 宕機後,zk 集羣會馬上進行新的 Leader 的選舉。但選舉時長一般在 200 毫秒
內,最長不超過 60 秒,整個選舉期間 zk 集羣是不接受客戶端的讀寫操作的,即 zk 集羣是
處於癱瘓狀態的。所以,其不滿足可用性。
Eureka 保證了 AP,犧牲了 CP。即其保證了可用性,但無法保證一致性。
1.7zk 可能會存在腦裂
這裏說的 zk 可能會引發腦裂,是指的在多機房部署中,若出現了網絡連接問題,形成
多個分區,則可能會出現腦裂問題,可能會導致數據不一致。