日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

分布式系统原理 之9 CAP 理论

發布時間:2024/2/28 windows 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分布式系统原理 之9 CAP 理论 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

分布式系統原理

CAP 理論

CAP 理論是由 Eric Brewer 提出的分布式系統中最為重要的理論之一[8]。本文將 CAP 理論安排在原理部分的最后介紹是為了利用前面已經介紹過的幾種分布式協議來幫助理解 CAP 理論。

1. 定義

CAP 理論的定義很簡單,CAP三個字母分別代表了分布式系統中三個相互矛盾的屬性:

Consistency (一致性):CAP 理論中的副本一致性特指強一致性(1.3.4 );

Availiablity(可用性):指系統在出現異常時已經可以提供服務;

Tolerance to the partition of network (分區容忍):指系統可以對網絡分區(1.1.4.2 )這種異常情況進行容錯處理;

CAP 理論指出:無法設計一種分布式協議,使得同時完全具備 CAP 三個屬性,即 1)該種協議下的副本始終是強一致性,2)服務始終是可用的,3)協議可以容忍任何網絡分區異常;分布式系統協議只能在 CAP 這三者間所有折中。

CAP 理論的詳細證明可以參考相關論文。這里可以簡單用一個反例證明不存在 CAP 兼具的系統。假設系統只有兩個副本 A 和 B,Client 更新這兩個副本,假設在網絡分化時,Client 與副本 A 可以正常通信,但副本 B 與 Client、副本 B 與副本 A 無法通信,此時,Client 對副本 A 更新的信息永遠無法同步到副本 B 上。如果希望系統依舊具有強一致的屬性,則此時需要停止更新服務,即不 再修改數據,從而讓副本 A 與副本 B 保持一致;如果希望系統依舊可以提供更新服務,則只能更新副本 A 而無法更新副本 B,此時無法保證副本 A 與副本 B 一致。

2. CAP 理論的意義

熱力學第二定律說明了永動機是不可能存在的,不要去妄圖設計永動機。與之類似,CAP 理論的意義就在于明確提出了++不要去妄圖設計一種對 CAP 三大屬性都完全擁有的完美系統++,因為這種系統在理論上就已經被證明不存在。

3. 協議分析

本節分析在第二章中介紹的幾種分布式協議是如何在 CAP 三大屬性中做折中與取舍的。在三章介紹典型分布式系統時,也會用 CAP 理論對這些系統的分布式協議進行分析。

3.1 Lease 機制

Lease 機制犧牲了部分異常情況下的 A,從而獲得了完全的 C 與很好的 P

上面這句話有點抽象,下面一一解釋。首先,Lease 機制不是在任何情況下都具有可用性的,使用 Lease 機制的協議,在發生異常時,需要等待 Lease 超時才能收回 Lease 權限。然而,Lease 的持有者可能在 Lease 超時前就已經出現異常而不能提供服務了,直到 Lease 超時這段時間內,系統服務的可用性都有問題。例如,如果用 lease 決定 Primary 副本的,Primary 副本節點宕機后,只有待 Lease 超時才能選出新的 primary 副本,這段時間由于缺乏 primary 副本是沒有更新服務的。再者,Lease協議本身保證了對于Lease約定的承諾在Lease頒發者和持有者之間是始終一致的。即使Lease持有者由于網絡分化沒有真正收到 Lease,Lease 頒發者也會在 Lease 時間內執行自己的承諾;而一旦 Lease 持有者收到 Lease,則即使再出現網絡分化,也無法影響雙方對 Lease 承諾理解的一致性。最后,Lease 協議引入了“時間”這一概念,使得在對抗網絡分化上有其特別的優勢,另外,Lease只需由頒發者向持有者通信,即使網絡是單向的也不影響 Lease 協議的正常工作。

3.2 Quorum 機制

這里僅討論一般的 Quorum 機制,即總共有 N 個副本,成功更新 W 個副本則算成功提交,讀取時讀 R 個副本。這種一般的 Quorum 機制,在 CAP 三大因素中都各做了折中,有一定的 C,有較好的 A,也有較好的 P,是一種較為平衡的分布式協議。

首先,讀取 R 個副本時,可以保證讀取到成功提交的版本,但無法保證讀取到最新的成功提交 的版本(2.4.4 )。也就是說,系統具有一定的一致性,卻無法真正做到強一致性。再者,無論是更 新 W 個副本,還是讀取 R 個副本,協議可以允許部分副本異常而不影響更新或者讀取服務。最后, 只要能與 W 個副本通信就可以提供更新服務,能與 R 個副本通信就可以提供讀服務,協議具有一 定的容忍網絡分化的能力。工程中,當使用 3 個副本時,可以講三個副本部署在三個不同的機房, 只有同時出現兩個機房的網絡都異常時才會影響服務,這種情況的概率本身已經非常低了。

3.3 兩階段提交協議

兩階段提交系統具有完全的 C,很糟糕的 A,很糟糕的 P

首先,兩階段提交協議保證了副本間是完全一致的,這也是協議的設計目的。再者,協議在一個節點出現異常時,就無法更新數據,其服務可用性較低。最后,一旦協調者與參與者之間網絡分化,無法提供服務。

3.4 Paxos 協議

同樣是強一致性協議,Paxos 在 CAP 三方面較之兩階段提交協議要優秀得多。Paxos 協議具有完全的 C,較好的 A,較好的 P。Paxos 的 A 與 P 的屬性與 Quorum 機制類似,因為 Paxos 的協議本身就具有 Quorum 機制的因素。

首先,無需贅述,Paxos 協議是一種強一致性協議。再者,Paxos 協議只有兩種情況下服務不可用:一是超過半數的 Proposer 異常,二是出現活鎖(2.8.4 )。前者可以通過增加 Proposer 的個數來降低由于 Proposer 異常影響服務的概率,后者本身發生的概率就極低。最后,只要能與超過半數的Proposer 通信就可以完成協議流程,協議本身具有較好的容忍網絡分區的能力。

參考:《分布式系統原理介紹》 - 劉杰

總結

以上是生活随笔為你收集整理的分布式系统原理 之9 CAP 理论的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。