CAP理論簡介:
CAP理論作為分布式系統(tǒng)的基礎(chǔ)理論,它描述的是一個分布式系統(tǒng)在以下三個特性中:
- 一致性(Consistency)
- 可用性(Availability)
- 分區(qū)容錯性(Partition tolerance)
一致性(Consistency):
在分布式系統(tǒng)完成某寫操作后任何讀操作,都應(yīng)該獲取到該寫操作寫入的那個最新的值。相當(dāng)于要求分布式系統(tǒng)中的各節(jié)點時時刻刻保持數(shù)據(jù)的一致性。
可用性(Availability):
一直可以正常的做讀寫操作。簡單而言就是客戶端一直可以正常訪問并得到系統(tǒng)的正常響應(yīng)。用戶角度來看就是不會出現(xiàn)系統(tǒng)操作失敗或者訪問超時等問題。
分區(qū)容錯性(Partition tolerance):
指的分布式系統(tǒng)中的某個節(jié)點或者網(wǎng)絡(luò)分區(qū)出現(xiàn)了故障的時候,整個系統(tǒng)仍然能對外提供滿足一致性和可用性的服務(wù)。也就是說部分故障不影響整體使用。
事實上我們在設(shè)計分布式系統(tǒng)是都會考慮到bug,硬件,網(wǎng)絡(luò)等各種原因造成的故障,所以即使部分節(jié)點或者網(wǎng)絡(luò)出現(xiàn)故障,我們要求整個系統(tǒng)還是要繼續(xù)使用的
(不繼續(xù)使用,相當(dāng)于只有一個分區(qū),那么也就沒有后續(xù)的一致性和可用性了)
而最多同時較好地滿足兩個條件(原因請參考:https://www.cnblogs.com/zhuyeshen/p/11720655.html)。
C:Consistency (強一致性)
A:Available (可用性)
P:Partition tolerance (分區(qū)容錯性)
CAP理論的核心是:一個分布式系統(tǒng)不可能同時很好的滿足一致性、可用性和分區(qū)容錯性這三個需求,因此,根據(jù)CAP原理將NoSQL數(shù)據(jù)庫分成了滿足CA、CP、AP 原則 三大類:
CA :單點集群,滿足一致性,可用性的系統(tǒng),通常在可擴展性上不太強大。
CP: 滿足一致性,分區(qū)容錯的系統(tǒng),通常性能不是特別高。
AP: 滿足可用性,分區(qū)容錯性的系統(tǒng),通??赡軐σ恢滦砸蟮鸵恍?。

針對于 Eureka、Zookeeper、Consul 三個注冊中心,
Eureka有自我保護機制,更強調(diào)的是AP,保證服務(wù)的高可用,微服務(wù)就是偶爾宕機掉線了,一時半會不會立刻刪除。
Zookeeper 和 Consul 則采用的是CP原則,他們注冊的微服務(wù)是一個臨時節(jié)點,只要微服務(wù)不可用,發(fā)心跳測試收不到了,就迅速剔除微服務(wù),微服務(wù)恢復(fù)過來以后,會重新?lián)Q一個serviceID。
