BASE理論是對CAP理論的延伸,核心思想是即使無法做到強一致性(Strong Consistency,CAP的一致性就是強一致性),但應用可以採用適合的方式達到最終一致性(Eventual Consitency)
BASE是指基本可用(Basically Available)、軟狀態( Soft State)、最終一致性( Eventual Consistency)。
基本可用(Basically Available)
基本可用是指分佈式系統在出現故障的時候,允許損失部分可用性,即保證核心可用。
服務降級:電商大促時,爲了應對訪問量激增,部分用戶可能會被引導到降級頁面,服務層也可能只提供降級服務。這就是損失部分可用性的體現。
響應時間上的損失:正常情況下,一個在線搜索引擎需要0.5秒內返回給用戶相應的查詢結果,但由於出現異常(比如系統部分機房發生斷電或斷網故障),查詢結果的響應時間增加到了1~2秒。
軟狀態(Soft State)
軟狀態是指允許系統存在中間狀態,而該中間狀態不會影響系統整體可用性。分佈式存儲中一般一份數據至少會有三個副本,允許不同節點間副本同步的延時就是軟狀態的體現。mysql replication的異步複製也是一種體現。
最終一致性(Eventual Consistency)
最終一致性是指系統中的所有數據副本經過一定時間後,最終能夠達到一致的狀態。弱一致性和強一致性相反,最終一致性是弱一致性的一種特殊情況。
ACID和BASE的區別與聯繫
ACID是傳統數據庫常用的設計理念,追求強一致性模型。BASE支持的是大型分佈式系統,提出通過犧牲強一致性獲得高可用性。
ACID和BASE代表了兩種截然相反的設計哲學