經典CAP圖數據庫
分佈式系統的CAP理論:理論首先把分佈式系統中的三個特性進行了以下概括:網絡
●一致性(C):在分佈式系統中的全部數據備份,在同一時刻是否一樣的值。(等同於全部節點訪問同一份最新的數據副本)分佈式
● 可用性(A):在集羣中一部分節點故障後,集羣總體是否還能響應客戶端的讀寫請求。(對數據更新具有高可用性)性能
●分區容錯性(P):以實際效果而言,分區至關於對通訊的時限要求。系統若是不能在時限內達成數據一致性,就意味着發生了分區的狀況,必須就當前操做在C和A之間作出選擇。spa
如今的分佈式系統只能取其二。blog
CAP理論的核心是:集羣
一個分佈式系統不可能同時很好的知足一致性、可用性和分區容錯性這三個需求,所以,根據CAP原理將NoSQL數據庫分紅了知足CA原則、知足CP原則和知足AP原則三大類:原理
CA – 單點集羣,知足一致性、可用性的系統,一般在可擴展性上不太強大;擴展
CP – 知足一致性、分區容錯性的系統,一般性能不是特別的高;高可用
AP – 知足可用性、分區容錯性的系統,一般可能對一致性要求低一點;
CAP的3進2:
CAP理論就是說在分佈式存儲系統中,最多隻能實現上面的兩點。而因爲當前的網絡硬件確定會出現延遲丟包等問題。因此,分區容錯性使咱們必須須要實現的。因此咱們只能在一致性和可用性之間進行權衡,沒有NoSQL系統能夠能同時保證這三點。
Zookeeper保證的是CP;
Eureka保證的是AP;
Eureka相比於Zookeeper的優點:
Eureka能夠很好的應對因網絡故障致使部分節點失去聯繫的狀況,而不會像Zookeeper那樣使整個註冊服務癱瘓。