zk 在客戶端連線的時候會有乙個sessiontimeout,session timeout 之前只要連線上一台機器就不算斷開連線了
zab需要保證的是當3號變更被執行的時候1,2兩個變更都已經確定被執行了
zk是使用乙個類似於二階段提交的過程,客戶端提交到了proposer上,然後到master,master向所有的成員廣播,超過半數同意就可以commit了
顯然二階段存在著單點問題,無法保證在master崩潰的情況下依然可以同步成功,所以一旦master節點掛了,就需要另外選舉出乙個新的leader
zxid的低32位是乙個遞增的id,高32位是乙個epochid,每次選舉後都會將master的id +1
這樣保證了每次新的伺服器如果有集群中不一致的訊息要提交的時候一定是不成功的,會被要求回退到某個和集群中一致的節點上
部署zk的時候最重要的一點就是要把myid寫對
搶鎖臨時節點檢測心跳
讀寫鎖選舉主備
根據子id的最小來進行訊息的消費
實際上yarn的rm就是利用的zk來進行主備切換的。為了防止誤搶了主。可以使用acl
zookeeper原理及應用
zookeeper 分布式服務框架是 apache hadoop 的乙個子專案,它主要是用來解決分布式應用中經常遇到的一些資料管理問題,如 統一命名服務 狀態同步服務 集群管理 分布式應用配置項的管理等。具體簡介可以參照這篇文章。原理篇zookeeper的工作集群可以簡單分成兩類,乙個是leader...
ZooKeeper原理及使用
1 開源客戶端的使用 zkclient com.github.adyliu zkclient 2.1.1 2 zookeeper命令 刪除zookeeper的日誌檔案 位置 home work local zookeeper 3.4.6 data version 2 下log 事務日誌 和snaps...
佇列原理及應用
一.佇列的基本原理 佇列 queue 與棧一樣,是一種線性儲存結構,它具有如下特點 佇列中的資料元素遵循 先進先出 first in first out 的原則,簡稱fifo結構。在隊尾新增元素,在隊頭刪除元素。二.佇列的相關概念 隊頭與隊尾 允許元素插入的一端稱為隊尾,允許元素刪除的一端稱為隊頭。...