ZooKeeper(六)-- CAP和BASE理論、ZAB協議

1、CAP理論和BASE理論

1.CAP理論算法

CAP理論,指的是在一個分佈式系統中,不可能同時知足Consistency(一致性)、 Availability(可用性)、Partition tolerance(分區容錯性)這三個基本需求,最多隻能知足其中的兩項。服務器

對於分佈式系統而言,分區容錯性是一個最基本的要求,由於分佈式系統中的組件必然須要部署到不通的節點,必然會出現子網絡,在分佈式系統中,網絡問題是一定會出現的異常。所以分佈式系統只能在C(一致性)和A(可用性)之間進行權衡。網絡

  • Consistency(一致性):全部節點在同一時間具備相同的數據。
  • Availability(可用性):保證每一個請求無論成功或者失敗都有響應。
  • Partition Tolerance(分區容錯性):系統中任意信息的丟失或失敗不會影響系統的繼續運做。

CAP理論的核心是:一個分佈式系統不可能同時很好的知足一致性,可用性和分區容錯性這三個需求,最多隻能同時較好的知足兩個。架構

2.BASE理論框架

BASE理論是指,Basically Available(基本可用)、Soft-state( 軟狀態/柔性事務)、Eventual Consistency(最終一致性)。是基於CAP定理演化而來,是對CAP中一致性和可用性權衡的結果。分佈式

核心思想:即便沒法作到強一致性,但每一個業務根據自身的特色,採用適當的方式來使系統達到最終一致性。設計

  • Basically Available:基本可用,指分佈式系統在出現故障的時候,容許損失部分可用性,保證核心可用。但不等價於不可用。
  • Soft-state:軟狀態/柔性事務,即狀態能夠有一段時間的不一樣步。
  • Eventual consistency:最終一致性,系統中的全部數據副本通過必定時間後,最終可以達到一致的狀態,不須要實時保證系統數據的強一致性。最終一致性是弱一致性的一種特殊狀況。

BASE是反ACID的,它徹底不一樣於ACID模型,犧牲強一致性,得到基本可用性和柔性可靠性並要求達到最終一致性。cdn

BASE理論面向的是大型高可用可擴展的分佈式系統,經過犧牲強一致性來得到可用性。blog

img

2、ZAB協議

1.ZAB協議概述事務

1.ZooKeeper並無徹底採用Paxos算法,而是使用了一種稱爲ZooKeeper Atomic Broadcast(ZAB,zookeeper原子消息廣播協議)的協議做爲其數據一致性的核心算法。

2.ZAB協議是爲分佈式協調服務zookeeper專門設計的一種支持崩潰恢復的原子廣播協議。

3.在 ZooKeeper 中,主要依賴 ZAB 協議來實現分佈式數據一致性,基於該協議,ZooKeeper 實現了一種主備模式的系統架構來保持集羣中各個副本之間的數據一致性。

2.ZAB協議的兩種基本模式

ZAB協議包含兩種基本的模式,即崩潰恢復和消息廣播。

當整個服務框架在啓動過程當中,或是當 Leader 服務器出現網絡中斷、崩潰退出與重啓等異常狀況時, ZAB 協議就會進入恢復模式並選舉產生新的 Leader 服務器。當選舉產生了新的Leader 服務器同時集羣中已經有過半的機器與該 Leader 服務器完成了狀態同步以後,ZAB 協議就會退出恢復模式。

當集羣中已經有過半的 Follower 服務器完成了和 Leader 服務器的狀態同步,那麼整個服務框架就能夠進入消息廣播模式了。當一臺一樣遵照 ZAB 協議的服務器啓動後加入到集羣中時,若是此時集羣中已經存在一個 Leader 服務器在負責進行消息廣播 , 那麼新加人的服務器就會自覺地進人數據恢復模式:找到 Leader 所在的服務器,並與其進行數據同步,而後一塊兒參與到消息廣播流程中去。
歡迎關注個人公衆號,第一時間接收最新文章~ 搜索公衆號: 碼咖 或者 掃描下方二維碼:

img
相關文章
相關標籤/搜索