侧边栏壁纸
博主头像
ProSayJ 博主等级

Talk is cheap. Show me the code.

  • 累计撰写 41 篇文章
  • 累计创建 16 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

如何查看某个 Zookeeper 节点是否为 Leader

YangJian
2025-06-22 / 0 评论 / 0 点赞 / 25 阅读 / 0 字

Zookeeper 本身是一个 无主架构的分布式协调系统,并不是所有节点都有“Master”的概念。但 Zookeeper 集群内部确实存在一个 Leader 节点,用于处理写请求(如 create、setData、delete),其余为 Follower 或 Observer。


🧠 一些关键点:

角色

说明

Leader

负责处理所有写操作,请求复制和事务日志同步。

Follower

接收客户端连接,转发写请求到 Leader,参与投票选举。

Observer

接收客户端连接,仅同步数据,不参与选举。


✅ 如何查看某个 Zookeeper 节点是否为 Leader(即“master”)

1. 使用四字命令:stat

执行如下命令:

echo stat | nc localhost 2181

或:

echo ruok | nc localhost 2181

输出中关注这部分:

Mode: leader

可能值为:

  • leader → 当前是 Leader 节点

  • follower → 当前是 Follower 节点

  • standalone → 当前是单机模式

  • observer → 当前是 Observer 节点


2. 脚本方式批量查看集群 Leader 节点

假设你有三个节点:zk1, zk2, zk3:

for host in zk1 zk2 zk3; do
  echo -n "$host: "
  echo stat | nc $host 2181 | grep Mode
done

输出类似:

zk1: Mode: follower
zk2: Mode: leader
zk3: Mode: follower

for host in zookeeper-cluster-1 zookeeper-cluster-2 zookeeper-cluster-3; do
  echo -n "$host: "
  echo stat | nc $host 2181 | grep Mode
done


3. 使用 srvr 命令获取更详细状态

echo srvr | nc localhost 2181

输出会包含节点角色、版本等内容。


✅ 结论

Zookeeper 的“master”节点就是指集群中的 Leader,你可以通过 stat 或 srvr 四字命令查看当前节点角色。

0

评论区