摘要:是分布式數(shù)據(jù)庫中的重要理論之一。為了更好的理解分布式數(shù)據(jù)庫,我們需要對理論有個簡單的理解。概述證明了,對于一個分布式數(shù)據(jù)庫系統(tǒng),存在這樣三個指標一致性。根據(jù)理論,當你在設(shè)計使用分布式數(shù)據(jù)庫時,你需要做出選擇在中放棄什么。
CAP 是分布式數(shù)據(jù)庫中的重要理論之一。為了更好的理解分布式數(shù)據(jù)庫,我們需要對 CAP 理論有個簡單的理解。
1.CAP 概述CAP 證明了,對于一個分布式數(shù)據(jù)庫系統(tǒng),存在這樣三個指標:
C_onsistent_(一致性。寫操作是 原子 的,當寫操作完成后,所有后續(xù)的讀取操作獲取得到的都必須是新值),
A_vailable_(可用性。只要還有一個節(jié)點服務器在運行,整個系統(tǒng)對于請求總是要返回結(jié)果)
P_artition tolerant_(分區(qū)容忍性。當節(jié)點服務器之間的通信中斷后,即:出現(xiàn)網(wǎng)絡分區(qū),整個系統(tǒng)還是能提供服務的)。
而你只能在這三個指標中同時照顧好兩個。
根據(jù) CAP 理論,當你在設(shè)計/使用分布式數(shù)據(jù)庫時,你需要做出選擇:在 Consistent, Available, Partition tolerant 中放棄什么。
Partition tolerant 是個架構(gòu)選擇(數(shù)據(jù)庫是否是分布式),所以一般而言,你需要選擇是更在意 Consistent 還是 Available。
理解 CAP 理論對于做出正確的選擇是至關(guān)重要的。
2.CAP 小故事為了更好地理解 CAP,這里以現(xiàn)實生活中的例子做個類比
假設(shè)這個世界是一個巨大的分布式系統(tǒng),關(guān)于暴走漫畫的知識是系統(tǒng)中存儲的數(shù)據(jù),暴漫的粉絲是這個分布式系統(tǒng)中的一個個節(jié)點。
假設(shè)今天你剛剛看了最新一期暴走大事件(第三季43集),而今天的日期是 2015年4月18日,突然有一伙兒神秘人闖進你家門,把你抓到了深山里,讓你參與建造方舟,并且與世隔絕。
時光如梭,一轉(zhuǎn)眼 5 年過去了,到了 2020年1月2日。方舟建成,你被送回了家鄉(xiāng)。在回家的路上,你遇到一個路人,問了你一個問題:
暴走大事件最新一期是第幾季第幾集了?
這時候,你需要做一個選擇:
你可以回答你知道的最新一期(第三季43集,5年前的最新一期)。如果你選擇回答,那你就是 Available 的。或者你可以選擇不回答,因為你已經(jīng)與世隔絕了 5 年,你知道你的答案很可能和世界上其余暴漫粉絲的答案不一致(Consistent),這樣這個路人得不到答案,但是整個世界是 Consistent 的。
即:你可以選擇確保路人能得到答案(Available),或者確保世界的一致性(Consistent)。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/17461.html
摘要:和上一篇博文一樣,這次我們依舊以為案例,來分析理論在一個實際的分布式數(shù)據(jù)庫中的作用。這次我們來看看,在這樣的分布式數(shù)據(jù)庫中,理論是怎么起作用的。需要最終包含正確的值的服務器節(jié)點總數(shù)正確的冗余數(shù)據(jù)拷貝數(shù)。其實這就是關(guān)系型數(shù)據(jù)庫的做法。 和上一篇博文一樣,這次我們依舊以 Riak 為案例,來分析 CAP 理論在一個實際的分布式數(shù)據(jù)庫中的作用。 如果你還不熟悉 CAP,可以參考我之前的兩篇博...
閱讀 2970·2021-11-17 09:33
閱讀 3132·2021-11-16 11:52
閱讀 495·2021-09-26 09:55
閱讀 2992·2019-08-30 15:52
閱讀 1328·2019-08-30 15:44
閱讀 1274·2019-08-30 13:59
閱讀 810·2019-08-30 13:08
閱讀 1173·2019-08-30 10:50