BASE是對CAP中一致性和可用性權衡的結果,其來源於對大規模互聯網系統分佈式實踐的結論,是基於CAP定理逐步演化而來的,其核心思想是即使無法做到強一致性(Strong consistency),但每個應用都可以根據自身的業務特點,採用適當的方式來使系統達到最終一致性(Eventual consistency)
BASE 理論
- Basically Available(基本可用)
指分佈式系統在出現故障的時候,保證核心可用,允許損失部分可用性。
例如:電商在做促銷時,爲了保證購物系統的穩定性,部分消費者可能會被引導到一個降級的頁面。 - Soft state(軟狀態)
指允許系統中的數據存在中間狀態,並認爲該中間狀態不會影響系統整體可用性,即允許系統不同節點的數據副本之間進行同步的過程存在時延 - Eventually consistent(最終一致性)
最終一致性強調的是系統中所有的數據副本,在經過一段時間的同步後,最終能達到一致的狀態。
ACID 要求強一致性,通常運用在傳統的數據庫系統上。而 BASE 要求最終一致性,通過犧牲強一致性來達到可用性,通常運用在大型分佈式系統中。
在實際的分佈式場景中,不同業務單元和組件對一致性的要求是不同的,因此 ACID 和 BASE 往往會結合在一起使用