ZooKeeper原始碼分析

2021-08-03 08:29:33 字數 463 閱讀 6919

業餘時間學習了一下zookeeper : distributed process coordination這本書的內容,對zookeeper實現的細節很好奇,所以順便把zookeeper原始碼看了一遍。看完之後想寫點內容做個筆記,確發現不好開始。由於zookeeper乙個完整的邏輯的**可能在多個執行緒,多個檔案以及多個節點上互相作用,所以如果只講原理,就很難把原理同源**對應上;相反,只講源**就很難理解原理的全貌。本人嘗試解釋伺服器從開始啟動到正常提供的服務的**邏輯,由於表述能力欠佳,且原始碼中邏輯分支很多,所以文件中避免不了出現錯誤。如發現錯誤請提issue或者私發[email protected]

zookeeper架構

zookeeper伺服器節點啟動以及選舉

zookeeper伺服器狀態同步

zookeeper客戶端連線管理

zookeeper響應客戶端請求

zookeeper資料庫以及日誌檔案

zookeeper的原始碼分析

閱讀本文可以帶著下面問題 1.zookeeper客戶端有幾部分組成?2.那個模組管理所有網路 io的模組?3.watcher是否允許多個 client 對乙個或多個 znode 進行監控?4.zookeeper例項被建立時,會隨之建立幾個執行緒,各自是什麼?5.真正處理網路 io的是那個執行緒?模組...

Zookeeper 原始碼分析 啟動

本文主要介紹了zookeeper啟動的過程 執行zkserver.sh start命令可以啟動zookeeper。入口的main函式在類中quorumpeermain。main函式主要呼叫了runfromconfig函式,建立了 quorumpeer物件,並且呼叫了start函式,從而啟動了zook...

zookeeper領導者選舉原始碼分析

基於版本3.4.13 quorumcnxmanager主要負責和其他節點資料傳輸 sendqueue 選票傳送佇列,用於儲存待傳送的選票。recvqueue 選票接收佇列,用於儲存接收到的外部投票。workerreceiver 選票接收器。其會不斷地從quorumcnxmanager中獲取其他伺服器...