CAP理論

什么是 CAP?

C 代表 Consistency(一致性)
是指所有節(jié)點在同一時刻的數(shù)據(jù)是相同的,即更新操作執(zhí)行結(jié)束并響應(yīng)用戶完成后,所有節(jié)點存儲的數(shù)據(jù)會保持相同。

A 代表 Availability(可用性)
是指系統(tǒng)提供的服務(wù)一直處于可用狀態(tài),對于用戶的請求可即時響應(yīng)。

P 代表 Partition Tolerance(分區(qū)容錯性)
是指在分布式系統(tǒng)遇到網(wǎng)絡(luò)分區(qū)的情況下,仍然可以響應(yīng)用戶的請求。網(wǎng)絡(luò)分區(qū)是指因為網(wǎng)絡(luò)故障導(dǎo)致網(wǎng)絡(luò)不連通,不同節(jié)點分布在不同的子網(wǎng)絡(luò)中,各個子網(wǎng)絡(luò)內(nèi)網(wǎng)絡(luò)正常。

一致性、可用性和分區(qū)容錯性,就是分布式系統(tǒng)的三個特征。那么,我們平時說的 CAP 理論又是什么呢?CAP 理論指的就是,在分布式系統(tǒng)中 C、A、P 這三個特征不能同時滿足,只能滿足其中兩個。

圖片.png

CAP 選擇策略及應(yīng)用

C、A 和 P,沒有誰優(yōu)誰劣,只是不同的分布式場景適合不同的策略。

保 CA 棄 P

在分布式系統(tǒng)中,現(xiàn)在的網(wǎng)絡(luò)基礎(chǔ)設(shè)施無法做到始終保持穩(wěn)定,網(wǎng)絡(luò)分區(qū)(網(wǎng)絡(luò)不連通)難以避免。CA 模型,在分布式系統(tǒng)中不存在。因為舍棄 P,意味著舍棄分布式系統(tǒng),

保 CP 棄 A

如果一個分布式場景需要很強的數(shù)據(jù)一致性,或者該場景可以容忍系統(tǒng)長時間無響應(yīng)的情況下,保 CP 棄 A 這個策略就比較適合。這種策略通常用在涉及金錢交易的分布式場景下,因為它任何時候都不允許出現(xiàn)數(shù)據(jù)不一致的情況,否則就會給用戶造成損失。因此,這種場景下必須保證 CP。

保 AP 棄 C

如果一個分布式場景需要很高的可用性,或者說在網(wǎng)絡(luò)狀況不太好的情況下,該場景允許數(shù)據(jù)暫時不一致,那這種情況下就可以犧牲一定的一致性了。比如,很多查詢網(wǎng)站、電商系統(tǒng)中的商品查詢等,用戶體驗非常重要,所以大多會保證系統(tǒng)的可用性,而犧牲一定的數(shù)據(jù)一致性。
目前,采用保 AP 棄 C 的系統(tǒng)也有很多,比如 CoachDB、Eureka、Cassandra、DynamoDB 等。

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

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