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