ZooKeeper Canary我理解用於測試ZK節點是否正常的心跳服務,這是從ClouderaManager中粘下來的:
這是 ZooKeeper 服務級運行狀況測試,用於檢查基本客戶端操作是否正常以及是否在合理時間內完成。該測試將對定期執行以下操作序列的“Canary”測試的結果進行報告。 首先,與 ZooKeeper 服務連接並建立會話(根會話),並創建一個永久 znode 作為所有 Canary 操作的根。然后,Canary 測試將與該服務的每個 ZooKeeper Server 進行連接並建立會話(子會話)。每個子會話均用於在 Canary 根中建立一個臨時子 znode。創建子 znode 后,注意每個子會話的每個子 znode 都會寄存“等待 znode 刪除”事件。然后,Canary 測試會刪除每個子 znode,再驗證每個子會話是否接收了每個子 znode 的刪除通知。最后,Canary 測試會關閉所有子會話,刪除根 znode 並關閉根會話。 如果對 ZooKeeper 服務建立根會話失敗、創建永久或臨時 znode 失敗、刪除 znode 失敗或檢索根 znode 的子 znode 失敗,該測試將返回運行狀況“不良”。 當 Canary 測試成功但有一個或多個服務器無法參與 Canary 測試操作,或 Canary 測試運行過於緩慢時,該測試將返回運行狀況“存在隱患”。 該運行狀況測試失敗可能表示 ZooKeeper 無法正確或及時地滿足客戶端請求。請檢查 ZooKeeper Server 的狀態,並查看 ZooKeeper Server 日志以了解詳細信息。 可使用 ZooKeeper Canary 運行狀況檢查 ZooKeeper 服務監控設置啟用或禁用該測試。ZooKeeper Canary 根 Znode 路徑、ZooKeeper Canary 連接超時、ZooKeeper Canary 會話超時、ZooKeeper Canary 操作超時 設置用於控制 Canary 操作。