java分布式的CAP定理是什么

這篇文章主要介紹“java分布式的CAP定理是什么”,在日常操作中,相信很多人在java分布式的CAP定理是什么問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”java分布式的CAP定理是什么”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

成都創(chuàng)新互聯(lián)公司專(zhuān)注于泌陽(yáng)企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),商城建設(shè)。泌陽(yáng)網(wǎng)站建設(shè)公司,為泌陽(yáng)等地區(qū)提供建站服務(wù)。全流程按需求定制制作,專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)公司專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)

CAP定理又稱(chēng)布魯爾定理,是計(jì)算機(jī)科學(xué)家 Eric brewer 提出的,是分布式系統(tǒng)領(lǐng)域的一個(gè)定理。若想設(shè)計(jì)一個(gè)分布式架構(gòu)的系統(tǒng),掌握這項(xiàng)定理不可或缺。

C是Consistency,也就是一致性,在CAP中的是強(qiáng)一致性。A是Availability ,可用性。P是Partition tolerance,分區(qū)容錯(cuò)性。在分布式系統(tǒng)中三者不可兼得,只能選兩個(gè)。這就是CAP定理。例如你保證了一致性和分區(qū)容錯(cuò)性就無(wú)法保證可用性。

Consistency

這里的一致性是強(qiáng)一致性,強(qiáng)一致性的意思就是例如節(jié)點(diǎn)A更新了數(shù)據(jù),節(jié)點(diǎn)B能同時(shí)更新,這樣客戶端在每次讀取獲得數(shù)據(jù)都是最近更新的。但是在定理中是忽略掉我們平日里的網(wǎng)絡(luò)延遲的?,F(xiàn)實(shí)情況網(wǎng)絡(luò)延遲在現(xiàn)在還是無(wú)法避免的,所以我們只能實(shí)現(xiàn)最終一致性,但是目標(biāo)還是貼近強(qiáng)一致性,也就是盡力降低延時(shí)的時(shí)間。

Availability

可用性指的是非故障的節(jié)點(diǎn)需要在合理的時(shí)間返回合理的響應(yīng)。合理的響應(yīng)的意思也就是不能搞個(gè)報(bào)錯(cuò),不能是超時(shí)失敗。舉個(gè)例子比如說(shuō)節(jié)點(diǎn)A更新了數(shù)據(jù),同時(shí)要發(fā)布到節(jié)點(diǎn)B上,但是中間傳輸?shù)碾娎|被挖掘機(jī)挖斷了,此時(shí)用戶去訪問(wèn)節(jié)點(diǎn)B,此時(shí)節(jié)點(diǎn)B應(yīng)該返回老的數(shù)據(jù),而不應(yīng)該報(bào)錯(cuò)。這就是可用性。讓用戶感覺(jué)系統(tǒng)還是能用的。

Partition tolerance

分區(qū)容錯(cuò)性,指的是當(dāng)網(wǎng)絡(luò)分區(qū)了,系統(tǒng)還能正常的運(yùn)行和響應(yīng)。比如節(jié)點(diǎn)A和節(jié)點(diǎn)B無(wú)法通信,你要考慮這個(gè)時(shí)候系統(tǒng)如何應(yīng)該。雖然網(wǎng)絡(luò)分區(qū)的概率低而且時(shí)間短但是這種情況是會(huì)發(fā)生的。所以理論上是犧牲C或者A,P是一定要達(dá)到的。

舉個(gè)例子,把P扔了。所以此時(shí)系統(tǒng)需要保證CA,然后此時(shí)發(fā)生了網(wǎng)絡(luò)分區(qū),節(jié)點(diǎn)A和B無(wú)法通信了,此時(shí)客戶端想要往節(jié)點(diǎn)A寫(xiě)入數(shù)據(jù),但是因?yàn)榇藭r(shí)無(wú)法同步數(shù)據(jù)至節(jié)點(diǎn)B。所以只有保證A不寫(xiě)入因此才能保證一致性。那你不讓客戶端往A寫(xiě)數(shù)據(jù),你就只能報(bào)個(gè)錯(cuò)返回給客戶端,說(shuō)此時(shí)不能寫(xiě),那是不是違反了可用性了?

所以在分布式系統(tǒng)中P是一定要保證的。所以在分布式系統(tǒng)中是CP,AP這樣搭配的。

那CA呢?請(qǐng)注意,CAP所說(shuō)的CAP三者只能存在兩者,所以CA是可以能搭配的。就是在系統(tǒng)沒(méi)有P的時(shí)候,CA搭配。也就是說(shuō)當(dāng)系統(tǒng)不存在分區(qū)情況的時(shí)候要滿足C和A,當(dāng)系統(tǒng)出現(xiàn)分區(qū)情況的之后視情況拋棄C或者A。

注意

CAP理論不是系統(tǒng)級(jí)別的,是數(shù)據(jù)級(jí)別的。啥意思呢?

也就是說(shuō)當(dāng)出現(xiàn)網(wǎng)絡(luò)分區(qū)的情況,你可以一部分?jǐn)?shù)據(jù)遵守CP,一部分?jǐn)?shù)據(jù)遵守AP。例如用戶注冊(cè)場(chǎng)景可以上CP,保證用戶注冊(cè)之后登錄的成功。而用戶更換頭像這種就上AP,畢竟用舊的數(shù)據(jù)影響也不會(huì)很大。

因此我們要根據(jù)不同的業(yè)務(wù)場(chǎng)景來(lái)選擇不同的應(yīng)對(duì)方案。CAP是可以靈活搭配的。

到此,關(guān)于“java分布式的CAP定理是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

文章題目:java分布式的CAP定理是什么
本文網(wǎng)址:http://muchs.cn/article4/ijdpie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站網(wǎng)站設(shè)計(jì)手機(jī)網(wǎng)站建設(shè)、微信公眾號(hào)網(wǎng)站內(nèi)鏈、網(wǎng)站制作

廣告

聲明:本網(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)

外貿(mào)網(wǎng)站制作