Zookeeper 思維導圖

常見相關問題
ZooKeeper 是什么?
ZooKeeper 是一個分布式的,開放源碼的分布式應用程序協(xié)調服務,是Google 的 Chubby 一個開源的實現,它是集群的管理者,監(jiān)視著集群中各個節(jié)點的狀態(tài)根據節(jié)點提交的反饋進行下一步合理操作。最終,將簡單易用的接口和性能高效、功能穩(wěn)定的系統(tǒng)提供給用戶??蛻舳说淖x請求可以被集群中的任意一臺機器處理,如果讀請求在節(jié)點上注冊了監(jiān)聽器,這個監(jiān)聽器也是由所連接的zookeeper機器來處理。對于寫請求,這些請求會同時發(fā)給其他zookeeper機器并且達成一致后,請求才會返回成功。因此,隨著zookeeper的集群機器增多,讀請求的吞吐會提高但是寫請求的吞吐會下降。有序性是zookeeper中非常重要的一個特性,所有的更新都是全局有序的,每個更新都有一個唯一的時間戳,這個時間戳稱為zxid(Zookeeper Transaction Id)。而讀請求只會相對于更新有序,也就是讀請求的返回結果中會帶有這個zookeeper最新的zxid。
節(jié)點類型
PERSISTENT-持久化目錄節(jié)點 客戶端與zookeeper斷開連接后,該節(jié)點依舊存在 PERSISTENT_SEQUENTIAL-持久化順序編號目錄節(jié)點 客戶端與zookeeper斷開連接后,該節(jié)點依舊存在,只是Zookeeper給該節(jié)點名稱進行順序編號 EPHEMERAL-臨時目錄節(jié)點 客戶端與zookeeper斷開連接后,該節(jié)點被刪除 EPHEMERAL_SEQUENTIAL-臨時順序編號目錄節(jié)點??蛻舳伺czookeeper斷開連接后,該節(jié)點被刪除,只是Zookeeper給該節(jié)點名稱進行順序編號
集群模式
Leader 角色服務器負責管理集群中其他的服務器,是集群中工作的分配和調度者。 Follow 服務器的主要工作是選舉出 Leader 服務器,在發(fā)生 Leader 服務器選舉的時候,系統(tǒng)會從 Follow 服務器之間根據多數投票原則,選舉出一個 Follow 服務器作為新的 Leader 服務器。 Observer 服務器則主要負責處理來自客戶端的獲取數據等請求,并不參與 Leader 服務器的選舉操作,也不會作為候選者被選舉為 Leader 服務器。
Zookeeper工作原理
Zookeeper 下 Server工作狀態(tài)
LOOKING:當前Server不知道leader是誰,正在搜尋
LEADING:當前Server即為選舉出來的leader
FOLLOWING:leader已經選舉出來,當前Server與之同步
Zookeeper分布式鎖(文件系統(tǒng)、通知機制)
zookeeper是如何選取主leader的?
Zookeeper同步流程

評論
圖片
表情
