對分佈式CAP理論的理解

先把每個拆分得概念理解清楚,然後依賴一些生活場景加以聯想,就好理解了
C(Consistency) 一致性:保證同一時間訪問所有節點的數據都是一致的
A (Availability)可用性:在系統中一部分節點故障後,系統是否還能響應客戶端的讀寫請求。
P (Partition tolerance)分區容錯:系統不能在時限內達成數據一致性,就是發生了分區(以上是 Wiki 的解釋)。由於計算機中沒有百分百可靠的通信協議(通信原理、計算機網絡的內容),所以系統內肯定會存在部分節點在時限內無法通信,而造成數據不一致的問題。所以 P 是肯定是滿足的。

假設分佈式系統中,由於 P 的客觀存在,一個節點掛了(短時間內無法和系統內其他節點同步數據),而其他節點數據有更新。要滿足一致性,必須等其他數據必須要同步數據到該節點,才允許客戶端訪問。要是滿足可用性,系統在向客戶端提供服務的時候,已經無法保證系統內的數據一致了。
綜上,分佈式系統 CAP 最多隻能滿足兩個條件,其中 P 是必須有的,無法同時滿足 CAP。

剩下有種情況 CA 也是討論很多的,既然排除了 P,那系統需在時限內保證數據一致,那單體架構,單節點是最趨近於這種情況的了。那還要保證一致性,單節點就一份數據,完全一致。而可用性,要麼繼續服務,要麼整個掛,至於單體架構是否高可用,就看你怎麼界定了。

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