先上結論:
基於CAP理論介紹:
C:Consistency (強一致性)
A:Available (可用性)
P:Partition tolerance (分區容錯性)
最多只能同時較好的滿足兩個
CAP理論的核心是:一個分布式系統不可能同時很好的滿足一致性,可用性和分區容錯性這三個需求。因此,根據CAP原理將NoSQL數據庫分成了滿足CA原則、滿足CP原則和滿足AP原則三大類。
CA - 單點集群,滿足一致性,可用性的系統,通常在可擴展性上不太強
CP - 滿足一致性,分區容錯性的系統,通常性能不是特別高
AP - 滿足可用性,分區容錯性的系統,通常可能對一致性要求低一些
Eureka 采用的是AP架構,只滿足可用性和分區容錯性
當網絡分區出現后,為了保證可用性,系統B可以返回舊值,保證系統的可用性。
Eureka有自我保護機制,更強調的是AP,保證服務的高可用,微服務就是偶爾宕機掉線了,一時半會不會立刻刪除。 Zookeeper 和 Consul采用的是CP架構,滿足一致性和分區容錯性
當網絡分區出現后,為了保證一致性,就必須拒絕請求,否則無法保證一致性。
Zookeeper、Consul注冊的微服務是一個臨時節點,只要微服務不可用,發心跳測試收不到了,就迅速剔除微服務,微服務恢復過來以后,會重新換一個serviceID。