原文地址:http://www.hollischuang.com/archives/672
BASE理論
eBay的架構(gòu)師Dan Pritchett源于對大規(guī)模分布式系統(tǒng)的實踐總結(jié)塔逃,在ACM上發(fā)表文章提出BASE理論,BASE理論是對CAP理論的延伸伏蚊,核心思想是即使無法做到強一致性(Strong Consistency格粪,CAP的一致性就是強一致性),但應(yīng)用可以采用適合的方式達到最終一致性(Eventual Consitency)比伏。
BASE是指基本可用(Basically Available)疆导、軟狀態(tài)( Soft State)、最終一致性( Eventual Consistency)悠菜。
基本可用(Basically Available)
基本可用是指分布式系統(tǒng)在出現(xiàn)故障的時候败富,允許損失部分可用性,即保證核心可用。
電商大促時,為了應(yīng)對訪問量激增德玫,部分用戶可能會被引導到降級頁面椎麦,服務(wù)層也可能只提供降級服務(wù)。這就是損失部分可用性的體現(xiàn)琴儿。
軟狀態(tài)( Soft State)
軟狀態(tài)是指允許系統(tǒng)存在中間狀態(tài)嘁捷,而該中間狀態(tài)不會影響系統(tǒng)整體可用性。分布式存儲中一般一份數(shù)據(jù)至少會有三個副本晒屎,允許不同節(jié)點間副本同步的延時就是軟狀態(tài)的體現(xiàn)缓升。mysql replication的異步復(fù)制也是一種體現(xiàn)。
最終一致性( Eventual Consistency)
最終一致性是指系統(tǒng)中的所有數(shù)據(jù)副本經(jīng)過一定時間后骇吭,最終能夠達到一致的狀態(tài)歧寺。弱一致性和強一致性相反,最終一致性是弱一致性的一種特殊情況碾局。
ACID和BASE的區(qū)別與聯(lián)系
ACID是傳統(tǒng)數(shù)據(jù)庫常用的設(shè)計理念奴艾,追求強一致性模型。BASE支持的是大型分布式系統(tǒng)像啼,提出通過犧牲強一致性獲得高可用性潭苞。
ACID和BASE代表了兩種截然相反的設(shè)計哲學
在分布式系統(tǒng)設(shè)計的場景中,系統(tǒng)組件對一致性要求是不同的僧诚,因此ACID和BASE又會結(jié)合使用。