中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

分布式CAP定理和BASE理論是怎樣的

發布時間:2021-12-09 17:14:11 來源:億速云 閱讀:128 作者:柒染 欄目:大數據

這篇文章給大家介紹分布式CAP定理和BASE理論是怎樣的,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

2000年的時候,Eric Brewer教授提出了CAP猜想,2年后,被 Seth Gilbert 和 Nancy Lynch 從理論上證明了猜想的可能性,從此,CAP 理論正式在學術上成為了分布式計算領域的公認定理。并深深的影響了分布式計算的發展。

CAP定理

一個分布式系統不可能同時滿足一致性(C:Consistency),可用性(A: Availability)和分區容錯性(P:Partition tolerance)這三個基本需求,最多只能同時滿足其中的2個。

選項描述
C(Consistence)一致性,在集群中一部分節點故障后,集群整體是否還能響應客戶端的讀寫請求。(對數據更新具備高可用性)
A(Availability)可用性,指系統提供的服務必須一直處于可用的狀態,每次請都能獲取到非錯的響應——但是不保證獲取的數據為最新數據。
P(Network Partitioning分區容錯性,分布式系統在遇到任何網絡分區故障的時候,仍然能夠對外提供滿足一致性和可用性的服務,除非整個網絡環境都發生了故障。

為什么只能滿足其中兩個不能同時滿足三個?

在這之前我們來講一個故事,張三、李四、王麻子三個小朋友玩捉迷藏,張三抓,其余兩個藏,王麻子這個時候肚子餓了,就跑回家吃飯去了也沒告訴這兩位小朋友,張三和李四找了好久都沒找到。因為王麻子和他倆的信息斷了,并不知道王麻子是藏著還是溜回家了。

在數據庫中保證數據的一致性,保證高可用,但是我們不能保證每臺服務器不會中斷、每次的操作都能順利到達每臺服務器因為分區容錯。同樣,我們在插入數據的時候要保證每臺服務器都插入成功后再返回請求成功,這樣可用性就會非常低,系統響應速度非常慢甚至宕機。

分布式CAP定理和BASE理論是怎樣的

組 合分析結果
CA滿足原子和可用,放棄分區容錯。說白了,就是一個整體的應用。
CP滿足原子和分區容錯,也就是說,要放棄可用。當系統被分區,為了保證原子性,必須放棄可用性,讓服務停用。
AP滿足可用性和分區容錯,當出現分區,同時為了保證可用性,必須讓節點繼續對外服務,這樣必然導致失去原子性。

我們可以試想,分區容錯是分布式必須的,客戶使用系統的可用性也是我們的目標,犧牲一致性,通過技術手段來實現一致性,比如說我們通過消息隊列把數據發布到每臺數據節點。這樣為了解決CAP帶來的問題,BASE理論出現了。

BASE理論

BASE:全稱:Basically Available(基本可用),Soft state(軟狀態),和 Eventually consistent(最終一致性)三個短語的縮寫,來自 ebay 的架構師提出

Base 理論是對 CAP 中一致性和可用性權衡的結果,其來源于對大型互聯網分布式實踐的總結,是基于 CAP 定理逐步演化而來的。其核心思想是:無法做到強一致性(Strong consistency),但每個應用都可以根據自身的業務特點,采用適當的方式來使系統達到最終一致性(Eventual consistency)。

基本可用

什么是基本可用呢?假設系統,出現了不可預知的故障,但還是能用,相比較正常的系統而言:

  1. 響應時間上的損失:正常情況下的搜索引擎 0.5 秒即返回給用戶結果,而基本可用的搜索引擎可以在 1 秒作用返回結果。

  2. 功能上的損失:在一個電商網站上,正常情況下,用戶可以順利完成每一筆訂單,但是到了大促期間,為了保護購物系統的穩定性,部分消費者可能會被引導到一個降級頁面。

軟狀態

軟狀態:相對于原子性而言,要求多個節點的數據副本都是一致的,這是一種 “硬狀態”。
軟狀態指的是:允許系統中的數據存在中間狀態,并認為該狀態不影響系統的整體可用性,即允許系統在多個不同節點的數據副本存在數據延時。

最終一致性

最終一致性:系統能夠保證在沒有其他新的更新操作的情況下,數據最終一定能夠達到一致的狀態,因此所有客戶端對系統的數據訪問最終都能夠獲取到最新的值。 

最終一致性分為 5 種:

  1. 因果一致性(Causal consistency) 指的是:如果節點 A 在更新完某個數據后通知了節點 B,那么節點 B 之后對該數據的訪問和修改都是基于 A 更新后的值。于此同時,和節點 A 無因果關系的節點 C 的數據訪問則沒有這樣的限制。

  2. 讀己之所寫(Read your writes) 這種就很簡單了,節點 A 更新一個數據后,它自身總是能訪問到自身更新過的最新值,而不會看到舊值。其實也算一種因果一致性。

  3. 會話一致性(Session consistency) 會話一致性將對系統數據的訪問過程框定在了一個會話當中:系統能保證在同一個有效的會話中實現 “讀之所寫” 的一致性,也就是說,執行更新操作之后,客戶端能夠在同一個會話中始終讀取到該數據項的最新值。 

  4. 單調讀一致性(Monotonic read consistency) 單調讀一致性是指如果一個節點從系統中讀取出一個數據項的某個值后,那么系統對于該節點后續的任何數據訪問都不應該返回更舊的值。

  5. 單調寫一致性(Monotonic write consistency) 指一個系統要能夠保證來自同一個節點的寫操作被順序的執行。

BASE 理論面向的是大型高可用可擴展的分布式系統,和傳統事務的 ACID 是相反的,它完全不同于 ACID 的強一致性模型,而是通過犧牲強一致性來獲得可用性,并允許數據在一段時間是不一致的。

關于分布式CAP定理和BASE理論是怎樣的就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

达孜县| 渝中区| 武穴市| 嘉善县| 颍上县| 辽阳县| 印江| 鹤峰县| 柳林县| 永登县| 南投县| 孝感市| 四子王旗| 贵港市| 邻水| 东城区| 农安县| 四川省| 哈巴河县| 晋江市| 灵山县| 那坡县| 临沧市| 巴林右旗| 石棉县| 沁阳市| 武城县| 繁昌县| 绍兴市| 定西市| 罗江县| 新郑市| 珲春市| 南涧| 营山县| 淮阳县| 读书| 六盘水市| 监利县| 精河县| 丹江口市|