溫馨提示×

溫馨提示×

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

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

CAP原理和BASE思想是什么

發(fā)布時(shí)間:2022-01-07 09:08:48 來源:億速云 閱讀:116 作者:iii 欄目:軟件技術(shù)

本篇內(nèi)容介紹了“CAP原理和BASE思想是什么”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

分布式領(lǐng)域CAP理論

Consistency(一致性), 數(shù)據(jù)一致更新,所有數(shù)據(jù)變動都是同步的

Availability(可用性), 好的響應(yīng)性能

Partition tolerance(分區(qū)容忍性) 可靠性


定理:任何分布式系統(tǒng)只可同時(shí)滿足二點(diǎn),沒法三者兼顧。

忠告:架構(gòu)師不要將精力浪費(fèi)在如何設(shè)計(jì)能滿足三者的完美分布式系統(tǒng),而是應(yīng)該進(jìn)行取舍。


關(guān)系數(shù)據(jù)庫的ACID模型擁有 高一致性 + 可用性 很難進(jìn)行分區(qū):

Atomicity原子性:一個(gè)事務(wù)中所有操作都必須全部完成,要么全部不完成。

Consistency一致性. 在事務(wù)開始或結(jié)束時(shí),數(shù)據(jù)庫應(yīng)該在一致狀態(tài)。

Isolation隔離層. 事務(wù)將假定只有它自己在操作數(shù)據(jù)庫,彼此不知曉。

Durability. 一旦事務(wù)完成,就不能返回。

跨數(shù)據(jù)庫兩段提交事務(wù):2PC (two-phase commit), 2PC is the anti-scalability pattern (Pat Helland) 是反可伸縮模式的,JavaEE中的JTA事務(wù)可以支持2PC。因?yàn)?PC是反模式,盡量不要使用2PC,使用BASE來回避。


BASE模型反ACID模型,完全不同ACID模型,犧牲高一致性,獲得可用性或可靠性:

Basically Available基本可用。支持分區(qū)失敗(e.g. sharding碎片劃分?jǐn)?shù)據(jù)庫)

Soft state軟狀態(tài) 狀態(tài)可以有一段時(shí)間不同步,異步。

Eventually consistent最終一致,最終數(shù)據(jù)是一致的就可以了,而不是時(shí)時(shí)高一致。


BASE思想的主要實(shí)現(xiàn)有

1.按功能劃分?jǐn)?shù)據(jù)庫

2.sharding碎片


BASE思想主要強(qiáng)調(diào)基本的可用性,如果你需要High 可用性,也就是純粹的高性能,那么就要以一致性或容忍性為犧牲,BASE思想的方案在性能上還是有潛力可挖的。


現(xiàn)在NOSQL運(yùn)動豐富了拓展了BASE思想,可按照具體情況定制特別方案,比如忽視一致性,獲得高可用性等等,NOSQL應(yīng)該有下面兩個(gè)流派:

1. Key-Value存儲,如Amaze Dynamo等,可根據(jù)CAP三原則靈活選擇不同傾向的數(shù)據(jù)庫產(chǎn)品。

2. 領(lǐng)域模型 + 分布式緩存 + 存儲 (Qi4j和NoSql運(yùn)動),可根據(jù)CAP三原則結(jié)合自己項(xiàng)目定制靈活的分布式方案,難度高。


這兩者共同點(diǎn):都是關(guān)系數(shù)據(jù)庫SQL以外的可選方案,邏輯隨著數(shù)據(jù)分布,任何模型都可以自己持久化,將數(shù)據(jù)處理和數(shù)據(jù)存儲分離,將讀和寫分離,存儲可以是異步或同步,取決于對一致性的要求程度。


不同點(diǎn):NOSQL之類的Key-Value存儲產(chǎn)品是和關(guān)系數(shù)據(jù)庫頭碰頭的產(chǎn)品BOX,可以適合非Java如PHP RUBY等領(lǐng)域,是一種可以拿來就用的產(chǎn)品,而領(lǐng)域模型 + 分布式緩存 + 存儲是一種復(fù)雜的架構(gòu)解決方案,不是產(chǎn)品,但這種方式更靈活,更應(yīng)該是架構(gòu)師必須掌握的。

“CAP原理和BASE思想是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問一下細(xì)節(jié)

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

AI