前言總結
- C: 一致性(consistency),一個分布式系統(tǒng)的多臺服務器,只要能夠提供服務,則提供的數(shù)據(jù)都一致的
- A: 可用性(availiability),一個分布式系統(tǒng)的多臺服務器,在任何時刻都可以對外提供服務
- P:分區(qū)容忍性(partition tolerance),一個分布式系統(tǒng)的多個服務器,即使發(fā)生了分區(qū),分成了兩個或者多個獨立集群,扔然可以對外提供服務
示例

分布式系統(tǒng)示例
如圖所示,資源管理器集群由 AB 兩個服務器組成。
- 實現(xiàn)一致性:用戶寫入 A 服務器,并從 B 服務器讀取數(shù)據(jù),則如果要保持一致性,服務器 B 就需要一定時間延遲從 A 服務器同步數(shù)據(jù),在同步數(shù)據(jù)時,B 無法對外提供服務。
- 實現(xiàn)可用性:用戶寫入 A 并立即讀取 B,則 B 返回的一定是舊數(shù)據(jù),則時候保證了可用性但無法保證一致性
- 實現(xiàn)分區(qū)容忍性:用戶寫入 A 并立即讀取 B,如果 AB 斷開了,也就是分成了兩個獨立的區(qū)域,則從 B 讀取的一定是舊數(shù)據(jù),這時候不可能實現(xiàn)一致性
同時實現(xiàn)兩個
- 同時實現(xiàn)可用性和分區(qū)容忍性:無需同步,訪問即返回舊數(shù)據(jù),無法保證可用性
- 同時實現(xiàn)一致性和分區(qū)容忍性,不管怎么分區(qū),只保留一個分區(qū)對外提供服務,其他分區(qū)全部不可用
- 同時實現(xiàn)一致性和可用性:就只提供一個節(jié)點,這時候肯定無法滿足分區(qū)容忍性,因為無法分區(qū)