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 操作。