CAP:網絡
C:一致性:在分佈式系統中是指多個副本之間可否保持一致性;分佈式
A:可用性:系統提供的服務必須一直處於可用的狀態,對於用戶的每個請求老是在有限的時間內返回結果;spa
P:分區容錯性:該特性約束了分佈式系統須要具有如下特性:分佈式系統遇到網絡分區故障的時候,仍然須要能保證對外提供知足一致性和可用性的服務,除非整個網絡環境都發生故障。設計
CAP定理示意圖ci
因而可知要想三方面都與考慮到,那是不可能,咱們只能妥協,同步
放棄CAP | 說明 |
放棄A | 若是但願可以避免分區容錯性,那麼最簡單的方法就是將全部的數據放到分佈式的一個節點上,可是有一點就是放棄P就意味着放棄了系統擴展的可能性。table |
放棄C | 相對於放棄「分區容錯性」來講,放棄可用性正好相反,其作法就是一旦系統遇到網絡分區或其餘故障的時候,那麼影響的服務就須要等待一段時間,由於等待期間系統沒法對外提供服務,即不可用。擴展 |
放棄P | 這裏說的放棄一致性,並非徹底不須要數據一致性,若是是那樣的話,係數據就沒有什麼意義,系統也就沒有什麼意義。請求 事實上,此處所說的放棄一致性是指放棄強一致性,保存了數據最終一致性,這樣的系統沒法保證數據實時一直,可是承諾的是,數據最終會達到一個一致的狀態。具體多久能達到一致性,取決於系統的設計,主要就是不一樣副本之間數據的複製時間長短 |
由此能夠看出,咱們不可能丟棄A和C,只能在P上面作文章,方法
Base定理:
Basically Available:基本可用,分佈式系統出現不可預知的錯誤的時候,容許損失部分可用性,可是絕對不等於系統不可用;
Soft State:軟狀態:和強狀態對應,是指容許系統中的數據存在中間狀態,而且認爲該中間狀態不會影響系統的可用性,即容許系統不一樣節點之間的數據副本複製存在延時;
Eventually consistent:最終一致性 ,最終一致性強調的是系統中全部的數據副本,在通過一段時間的同步事後,最終能達到一個一致性的狀態。所以最終一致性的本質就是須要系統保證數據最終能達到一致,可是不須要實時保持數據一致的狀況。
綜上咱們會發現基本都是在分區一致性上作文章,待續...