分布式系統(tǒng)cap原理
2022-03-18
- 相關(guān)推薦
擴展資料
CAP的定義
Consistency 一致性
一致性指“all nodes see the same data at the same time”,即更新操作成功并返回客戶端完成后,所有節(jié)點在同一時間的數(shù)據(jù)完全一致。分布式的一致性
對于一致性,可以分為從客戶端和服務(wù)端兩個不同的視角。從客戶端來看,一致性主要指的是多并發(fā)訪問時更新過的數(shù)據(jù)如何獲取的問題。從服務(wù)端來看,則是更新如何復(fù)制分布到整個系統(tǒng),以保證數(shù)據(jù)最終一致。一致性是因為有并發(fā)讀寫才有的問題,因此在理解一致性的問題時,一定要注意結(jié)合考慮并發(fā)讀寫的場景。
從客戶端角度,多進程并發(fā)訪問時,更新過的數(shù)據(jù)在不同進程如何獲取的不同策略,決定了不同的一致性。對于關(guān)系型數(shù)據(jù)庫,要求更新過的數(shù)據(jù)能被后續(xù)的訪問都能看到,這是強一致性。如果能容忍后續(xù)的部分或者全部訪問不到,則是弱一致性。如果經(jīng)過一段時間后要求能訪問到更新后的數(shù)據(jù),則是最終一致性。
Availability 可用性
可用性指“Reads and writes always succeed”,即服務(wù)一直可用,而且是正常響應(yīng)時間。
對于一個可用性的分布式系統(tǒng),每一個非故障的節(jié)點必須對每一個請求作出響應(yīng)。所以,一般我們在衡量一個系統(tǒng)的可用性的時候,都是通過停機時間來計算的。