對(duì)于關(guān)系型數(shù)據(jù)庫(kù),要求更新過(guò)的數(shù)據(jù)能被后續(xù)的訪問(wèn)都能看到,這是強(qiáng)一致性。
如果能容忍后續(xù)的部分或者全部訪問(wèn)不到,則是弱一致性。
如果經(jīng)過(guò)一段時(shí)間后要求能訪問(wèn)到更新后的數(shù)據(jù),則是最終一致性。
CAP中說(shuō),不可能同時(shí)滿足的這個(gè)一致性指的是強(qiáng)一致性。
CA without P
分布式環(huán)境下,分區(qū)是必然的,所以如果舍棄P,意味著要舍棄分布式系統(tǒng)
CP without A
如果一個(gè)分布式系統(tǒng)不要求強(qiáng)的可用性,即容許系統(tǒng)停機(jī)或者長(zhǎng)時(shí)間無(wú)響應(yīng)的話,就可以在CAP三者中保障CP而舍棄A。
AP wihtout C
要高可用并允許分區(qū),則需放棄一致性。一旦網(wǎng)絡(luò)問(wèn)題發(fā)生,節(jié)點(diǎn)之間可能會(huì)失去聯(lián)系。為了保證高可用,需要在用戶訪問(wèn)時(shí)可以馬上得到返回,則每個(gè)節(jié)點(diǎn)只能用本地?cái)?shù)據(jù)提供服務(wù),而這樣會(huì)導(dǎo)致全局?jǐn)?shù)據(jù)的不一致性。
孰優(yōu)孰略,沒(méi)有定論,只能根據(jù)場(chǎng)景定奪,適合的才是最好的。
對(duì)于涉及到錢財(cái)這樣不能有一絲讓步的場(chǎng)景,C必須保證。網(wǎng)絡(luò)發(fā)生故障寧可停止服務(wù),這是保證CP,舍棄A。比如前幾年支付寶光纜被挖斷的事件,在網(wǎng)絡(luò)出現(xiàn)故障的時(shí)候,支付寶就在可用性和數(shù)據(jù)一致性之間選擇了數(shù)據(jù)一致性,用戶感受到的是支付寶系統(tǒng)長(zhǎng)時(shí)間宕機(jī),但是其實(shí)背后是無(wú)數(shù)的工程師在恢復(fù)數(shù)據(jù),保證數(shù)數(shù)據(jù)的一致性。
對(duì)于其他場(chǎng)景,比較普遍的做法是選擇可用性和分區(qū)容錯(cuò)性,舍棄強(qiáng)一致性,退而求其次使用最終一致性來(lái)保證數(shù)據(jù)的安全。
全稱:Basically Available(基本可用),Soft state(軟狀態(tài)),和 Eventually consistent(最終一致性)三個(gè)短語(yǔ)的縮寫(xiě)
Base 理論是對(duì) CAP 中一致性和可用性權(quán)衡的結(jié)果,其來(lái)源于對(duì)大型互聯(lián)網(wǎng)分布式實(shí)踐的總結(jié),是基于 CAP 定理逐步演化而來(lái)的。其核心思想是:
既是無(wú)法做到強(qiáng)一致性(Strong consistency),但每個(gè)應(yīng)用都可以根據(jù)自身的業(yè)務(wù)特點(diǎn),采用適當(dāng)?shù)姆绞絹?lái)使系統(tǒng)達(dá)到最終一致性(Eventual consistency)。
總結(jié)
總的來(lái)說(shuō),BASE 理論面向的是大型高可用可擴(kuò)展的分布式系統(tǒng),和傳統(tǒng)事務(wù)的 ACID 是相反的,它完全不同于 ACID 的強(qiáng)一致性模型,而是通過(guò)犧牲強(qiáng)一致性來(lái)獲得可用性,并允許數(shù)據(jù)在一段時(shí)間是不一致的。
網(wǎng)站題目:分布式CAPBASE理論-創(chuàng)新互聯(lián)
文章來(lái)源:http://aaarwkj.com/article10/hosgo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、域名注冊(cè)、建站公司、ChatGPT、用戶體驗(yàn)、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容