分佈式CAP理論與BASE思想

一:CAP理論
分佈式領域中,存在一個理論,稱之爲CAP理論。
Consistency(一致性):在分佈式系統中的所有數據備份,在同一時刻是否同樣的值。(等同於所有節點訪問同一份最新的數據副本)
Availability(可用性):在集羣中一部分節點故障後,集羣整體是否還能響應客戶端的讀寫請求。(對數據更新具備高可用性)
Partition tolerance(分區容錯性) :以實際效果而言,分區相當於對通信的時限要求。系統如果不能在時限內達成數據一致性,就意味着發生了分區的情況,必須就當前操作在C和A之間做出選擇。
CAP理論就是說在分佈式存儲系統中,最多隻能實現上面的兩點。而由於當前的網絡硬件肯定會出現延遲丟包等問題,所以分區容忍性是我們必須需要實現的。所以我們只能在一致性和可用性之間進行權衡。
目前認爲:任何分佈式系統只可同時滿足二點,沒法三者兼顧
傳統的關係型數據庫都是高一致性。例如,一旦用戶變更了記錄,是可以獲取最新的變更後的數據。但是往往我們對於數據的要求沒有這麼嚴格,在一定的時間範圍內,我們是可以接受一定的延遲的,也就是最終數據一致性即可。這就引出了另一個概念-Base思想。

二:Base
Basically Available(基本可用):支持分區失敗。
Soft state(軟狀態): 狀態可以有一段時間不同步,異步。
Eventually consistent(最終一致):最終數據是一致的就可以了,而不是時時高一致。
現在NOSQL運動豐富了拓展了BASE思想,可按照具體情況定製特別方案,比如忽視一致性,獲得高可用性等等,NOSQL應該有下面兩個流派:
1. Key-Value存儲,如Amaze Dynamo等,可根據CAP三原則靈活選擇不同傾向的數據庫產品。
2. 領域模型 + 分佈式緩存 + 存儲 (Qi4j和NoSql運動),可根據CAP三原則結合自己項目定製靈活的分佈式方案,難度高。

完!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章