溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

分布式系統(tǒng)CAP的原理介紹

發(fā)布時(shí)間:2020-08-10 18:02:34 來源:ITPUB博客 閱讀:369 作者:chenfeng 欄目:MySQL數(shù)據(jù)庫
CAP原理中,有三個(gè)要素:
一致性(Consistency)
可用性(Availability)
分區(qū)容錯(cuò)性(Partition tolerance)


Consistency 一致性
一致性指“all nodes see the same data at the same time”,即更新操作成功并返回客戶端完成后,所有節(jié)點(diǎn)在同一時(shí)間的數(shù)據(jù)完全一致。分布式的一致性
對(duì)于一致性,可以分為從客戶端和服務(wù)端兩個(gè)不同的視角。從客戶端來看,一致性主要指的是多并發(fā)訪問時(shí)更新過的數(shù)據(jù)如何獲取的問題。從服務(wù)端來看,則是更新如何復(fù)制分布到整個(gè)系統(tǒng),
以保證數(shù)據(jù)最終一致。一致性是因?yàn)橛胁l(fā)讀寫才有的問題,因此在理解一致性的問題時(shí),一定要注意結(jié)合考慮并發(fā)讀寫的場(chǎng)景。
從客戶端角度,多進(jìn)程并發(fā)訪問時(shí),更新過的數(shù)據(jù)在不同進(jìn)程如何獲取的不同策略,決定了不同的一致性。對(duì)于關(guān)系型數(shù)據(jù)庫,要求更新過的數(shù)據(jù)能被后續(xù)的訪問都能看到,這是強(qiáng)一致性。
如果能容忍后續(xù)的部分或者全部訪問不到,則是弱一致性。如果經(jīng)過一段時(shí)間后要求能訪問到更新后的數(shù)據(jù),則是最終一致性。

Availability 可用性
可用性指“Reads and writes always succeed”,即服務(wù)一直可用,而且是正常響應(yīng)時(shí)間。
對(duì)于一個(gè)可用性的分布式系統(tǒng),每一個(gè)非故障的節(jié)點(diǎn)必須對(duì)每一個(gè)請(qǐng)求作出響應(yīng)。也就是,該系統(tǒng)使用的任何算法必須最終終止。當(dāng)同時(shí)要求分區(qū)容忍性時(shí),這是一個(gè)很強(qiáng)的定義:即使是嚴(yán)重的網(wǎng)絡(luò)錯(cuò)誤,
每個(gè)請(qǐng)求必須終止。
好的可用性主要是指系統(tǒng)能夠很好的為用戶服務(wù),不出現(xiàn)用戶操作失敗或者訪問超時(shí)等用戶體驗(yàn)不好的情況??捎眯酝ǔG闆r下可用性和分布式數(shù)據(jù)冗余,負(fù)載均衡等有著很大的關(guān)聯(lián)。


Partition Tolerance分區(qū)容錯(cuò)性
分區(qū)容錯(cuò)性指“the system continues to operate despite arbitrary message loss or failure of part of the system”,即分布式系統(tǒng)在遇到某節(jié)點(diǎn)或網(wǎng)絡(luò)分區(qū)故障的時(shí)候,仍然能夠?qū)ν馓峁M足一致性
和可用性的服務(wù)。
分區(qū)容錯(cuò)性和擴(kuò)展性緊密相關(guān)。在分布式應(yīng)用中,可能因?yàn)橐恍┓植际降脑驅(qū)е孪到y(tǒng)無法正常運(yùn)轉(zhuǎn)。好的分區(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ò)性。
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI