一 zookeeper角色
領導者(leader)
領導者負責進行投票的發起和決議,更新系統狀態。
學習者(learner)
跟隨者:follower用於接收客戶端請求並向客戶端返回結果,在選主過程中參與投票。
觀察者:observer可以接收客戶端連線,並將請求**給leader節點,但observer 不參加投票過程,只同步leader的狀態,observer的目的是為了擴充套件系統,提高讀取速度。
客戶端(client)
應用程式客戶端,請求發起方。
二 zookeeper選舉
zookeeper選舉演算法採用了paxos協議。
paxos的核心思想是當大多數的server寫成功,則任務資料寫成功。
如果有三個server,則需兩個server寫成功即表示任務資料寫成功。
如果有四個或者五個server,則需三個server寫成功即表示任務資料寫成功。
server數目一般為奇數,例如3,5,7等
如果有三個server則最多允許乙個server掛掉。
如果有四個server則同樣最多允許乙個server掛掉。
三 zookeeper資料模型
zookeeper提供乙個層次化目錄結構,命名符合常規檔案系統規範。
每個節點在在zookeeper中叫做znode,並且他有唯一的乙個路徑標識。
znode有兩種型別:
短暫的(ephemeral) 當客戶端連線上zookeeper時,znode才會存在,當客戶端掛掉時,znode就會被刪除。
持久的(persistent) znode會持久的儲存,例如當客戶端掛掉或者zookeeper關閉再重啟時,znode還會重新恢復。
節點znode可以包含資料和子節點。
znode的資料可以有多個版本。
客戶端應用可以在節點上設定監視器(watcher)。
watcher作用:監測節點,一旦節點資料被修改,他就會廣播給各個客戶端,當客戶端收到廣播時,就會做出響應的調整。
節點znode不支援部分讀寫,而是一次性完整讀寫。
znode的型別在建立時確定,並且之後不能再修改。
znode有四種形式目錄節點,
persistent,persistent_sequential,ephemeral,ephemeral_sequential
zookeeper基本原理
服務集群對外提供服務的過程中,有很多的配置需要隨時更新,服務間需要協調工作,這些資訊如何推送到各個節點?並且保證資訊的一致性和可靠性?用zookeeper實現了一 個配置管理中心,利用zookeeper將配置資訊分發到各個服務節點上,並保證資訊的正確性和一致性。引用官方的說法 zookeeper是乙...
深入理解zookeeper基本原理
zookeeper 是乙個針對大型分布式系統的可靠協調系統 它提供的功能包括 配置維護 名字服務 分布式同步 組服務等 它的目標就是封裝好複雜易出錯的關鍵服務,將簡單易用的介面和效能高效 功能穩定的系統提供給使用者。zookeeper 主要包含以下幾個特點 1 最終一致性 為客戶端展示同一檢視,這是...
mysql的基本原理 Mysql 基本原理
mysql 基本原理 mysql是一種關聯式資料庫管理系統,關聯式資料庫將資料儲存在不同的表中,而不是將所有資料放在乙個大倉庫內,這樣就增加了速度並提高了靈活性 ysql是資料庫登入命令 uroot預設超級使用者登入 p 預設沒密碼 中寫密碼 mysqladmin uroot password 12...