CAP定理: 在一個分散式系統中,Consistency(數據一致性)、 Availability(服務可用性)、Partition tolerance(分區容錯性),三者不可兼得。 一致性(Consistency) 在分散式系統中的所有數據備份(副本),在同一時刻數據的值是否一致。(等同於所有節點 ...
CAP定理:
在一個分散式系統中,Consistency(數據一致性)、 Availability(服務可用性)、Partition tolerance(分區容錯性),三者不可兼得。
一致性(Consistency)
在分散式系統中的所有數據備份(副本),在同一時刻數據的值是否一致。(等同於所有節點訪問同一份最新的數據副本)
在分散式系統中,更新操作執行成功後所有的用戶都應該讀到最新的值,等同於所有節點訪問同一份最新的數據副本,這樣的系統被認為具有強一致性。優點: 數據一致,數據不會出錯;缺點: 效率低。
不滿足一致性指的是不滿足強一致性,但一般都要使用一些方式(加鎖),使數據具有最終一致性。
可用性(Availablity)
在集群中一部分節點故障後,集群整體是否還能響應客戶端的請求(是否還可用)。
每一個操作總能在一定的時間內完成,一定時間是指完成時間可以容忍、接受,完成是指結束(不管成功、失敗)。
分區容錯性(Partition-torlerance)
在網路分區中,每個時刻,每個集群都要有節點能正常對外提供服務,總要有一條完整的(網路)通路。無論什麼情況,伺服器都要能正常被訪問。
系統如果不能在時限內達成數據一致性,預設系統無故障,網路分區發生了情況,必須就當前操作在C和A之間做出選擇。
定律:任何分散式系統只能同時滿足二點,沒法三者兼顧