天天看點

學習下cap理論

作為一個一線的php碼農,對分布式系統僅限于使用,卻沒有實際去做一個分布式的系統,這不得不說是一個遺憾,這也是我正在學c++的初衷之一吧,當然不是非得c++,java/go或許是更好的選擇。

cap的理論,有點模糊的概念,卻不是特别清楚

在谷歌不可用的情況下bing和百度都是程式猿的好幫手。copy下大家的總結,說說我的淺薄的了解

cap理論

CAP原則又稱CAP定理,指的是在一個分布式系統中, Consistency(一緻性)、 Availability(可用性)、Partition tolerance(分區容錯性),三者不可得兼

分布式系統的CAP理論:理論首先把分布式系統中的三個特性進行了如下歸納:

  ● 一緻性(C):在分布式系統中的所有資料備份,在同一時刻是否同樣的值。(等同于所有節點通路同一份最新的資料副本)

● 可用性(A):在叢集中一部分節點故障後,叢集整體是否還能響應用戶端的讀寫請求。(對資料更新具備高可用性)

● 分區容錯性(P):以實際效果而言,分區相當于對通信的時限要求。系統如果不能在時限内達成資料一緻性,就意味着發生了分區的情況,必須就目前操作在C和A之間做出選擇。

辯證為什麼三者不能得兼,如果都滿足了cap

如果強制要求一緻性,如果有節點故障了,整個系統都需要不可用才能保證c,這個時候我們需要作出妥協,非故障的節點可以用,允許分區容錯。這種情況下我們就是隻滿足ap了。

參考 http://baike.baidu.com/link?url=pPqOEumD_No_ZscGQMq1jVTiNCufv-EbWl0s0VCuM6hI0mBX1BNcPNXg8ZVvsG08cfNOmVYZBA586eVqfRRXba

http://blog.csdn.net/chen77716/article/details/30635543

繼續閱讀