ZooKeeper 的 Session ID 是每个会话的唯一标识,记录为一个 64 位的长整型。 只要对应会话未被服务器端主动关闭,它就一定能唯一关联上。且会话初次建立时 Session ID 会被写入 transaction log,这意味着会话是跨节点共享的。 客户端和一个节点断开连接后,只要会话还没过期,就仍然可以使用相同的 Session ID 连到另一个节点。这个会话创建的所有临时 ZNodes 也会相应保留。
指标显示 ZooKeeper 经常出现大量 outstanding requests (即节点上排队待处理的请求) 时,我们就需要诊断大量请求来自哪个 ZooKeeper 节点。无论是 leader、follower 还是 observer 节点都在本地处理读请求而将写请求转发给 leader 发起投票,所以节点自身的 outstanding requests 指标可能因参与投票而不是处理本节点的请求而飙高, 从而不一定能准确体现出请求来源。这个时候从 ...