除了使用JMX之外还有其他任何方式可以知道,代理是否是ActiveController?
我知道集群生成一个度量标准kafka.controller:type=KafkaController,name=ActiveControllerCount
,但我找不到哪个代理是活动控制器.
是否有必要编写一个JMX客户端来了解它,还是有另一种(更好的?)方式?
Mic*_*son 12
您可以使用该zookeeper-shell
工具找到活动控制器,如下所示:
./bin/zookeeper-shell.sh [ZK_IP] get /controller
Run Code Online (Sandbox Code Playgroud)
也许更简单的方法,因为你不需要 kafka 并且它是 zookeeper-shell.sh,使用命令行连接到 zookeeper 的客户端端口:
nc [zookeeper_ip] [zookeeper_port]
Run Code Online (Sandbox Code Playgroud)
或者
telnet [zookeeper_ip] [zookeeper_port]
Run Code Online (Sandbox Code Playgroud)
然后执行
dump
Run Code Online (Sandbox Code Playgroud)
它将打印与临时节点的会话,并且可以通过查找包含 /controller 路径的会话来查看哪个代理是控制器
例如,这样的转储结果:
Sessions with Ephemerals (3):
0x266542cfaa90000:
/brokers/ids/1
0x166542cfe670001:
/brokers/ids/3
0x166542cfe670000:
/controller
/brokers/ids/2
Run Code Online (Sandbox Code Playgroud)
表示控制器是broker_id为2的broker。
归档时间: |
|
查看次数: |
4218 次 |
最近记录: |