什么是分布式系統(tǒng)的CAP理論

在2000年的分布式計(jì)算原則研討會(huì)(PODC)上,計(jì)算機(jī)科學(xué)家埃里克.布魯爾針對分布式計(jì)算系統(tǒng)的一致性(Consistency)、可用性(Availability)、分區(qū)容錯(cuò)性(Partition-tolerant)提出了猜想。在2002年,他的猜想得到了來自麻省理工學(xué)院的兩位教授Nancy Lynch 和 Seth Gilbert的證明,并被稱為CAP定理。

CAP定理證實(shí)的是,在一個(gè)分布式計(jì)算系統(tǒng)中,不可能同時(shí)滿足下面三個(gè)條件:

  • 一致性(Consistency)
  • 可用性(Availability)
  • 分區(qū)容錯(cuò)性(Partition-tolerant)

在分布式系統(tǒng)中,一致性(Consistency)分為不同的類型。如果要求分布式系統(tǒng)的數(shù)據(jù)存儲(chǔ)層,在更新數(shù)據(jù)后,在后續(xù)的訪問中都能獲取到,并且保證結(jié)果一致,則是強(qiáng)一致性;如果能夠允許后續(xù)的部分或者全部訪問不到,則是弱一致性;如果允許經(jīng)過一段時(shí)間后,能夠訪問到更新的數(shù)據(jù),并保持一致,則是最終一致性。CAP定理中所說的不可能滿足的是強(qiáng)一致性。

可用性指的是在正常響應(yīng)時(shí)間內(nèi),服務(wù)一直可用。在分布式系統(tǒng)中存在許多節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)都承擔(dān)著相應(yīng)的職責(zé),如果其中某個(gè)節(jié)點(diǎn)出現(xiàn)故障,就有可能導(dǎo)致整個(gè)系統(tǒng)的癱瘓,所以保障系統(tǒng)的可用性是設(shè)計(jì)分布式系統(tǒng)必須要重點(diǎn)考慮的。對于一個(gè)具備可用性的分布式系統(tǒng),每一個(gè)正常運(yùn)行的節(jié)點(diǎn)都必須對請求做出響應(yīng)。所以,通常我們都會(huì)通過停機(jī)時(shí)間來衡量一個(gè)系統(tǒng)的可用性。

可用性分類 可用水平 年可容忍停機(jī)時(shí)間
容錯(cuò)可用性 99.9999% <1min
極高可用性 99.999% <5 min
自恢復(fù)可用性 99.99% <53 min
高可用性 99.9% <8.8h
商品可用性 99% <87.6h

分區(qū)容錯(cuò)性是指,當(dāng)分布式系統(tǒng)在遇到某節(jié)點(diǎn)或網(wǎng)絡(luò)分區(qū)故障的時(shí)候,仍然能夠?qū)ν馓峁M足一致性和可用性的服務(wù)。好的分區(qū)容錯(cuò)性要求能夠使應(yīng)用雖然是一個(gè)分布式系統(tǒng),而看上去卻好像是在一個(gè)可以運(yùn)轉(zhuǎn)正常的整體。比如現(xiàn)在的分布式系統(tǒng)中有某一個(gè)或者幾個(gè)機(jī)器宕掉了,其他剩下的機(jī)器還能夠正常運(yùn)轉(zhuǎn)滿足系統(tǒng)需求,或者是機(jī)器之間有網(wǎng)絡(luò)異常,將分布式系統(tǒng)分隔未獨(dú)立的幾個(gè)部分,各個(gè)部分還能維持分布式系統(tǒng)的運(yùn)作,這樣就具有好的分區(qū)容錯(cuò)性。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容