检查 zookeeper 的 运行 模式的正确方法

Correct way to check zookeeper's running mode

谁能告诉我通过 netcat 检查 zookeeper 的 运行 模式的推荐方法是什么?

文档说明 echo "isro" | nc localhost 2181

但在少数links中建议使用-q与netcat

有人可以告诉我是否需要使用-q吗?

这完全取决于您拥有的 netcat 版本。如果您键入 nc,您将看到可用的支持标志。例如,

nc [OPTIONS] -l -p PORT [HOST] [PORT] - listen

-e PROG Run PROG after connect (must be last)
-l Listen mode, for inbound connects
-lk With -e, provides persistent server
-p PORT Local port
-s ADDR Local address
-w SEC Timeout for connects and final net reads
-i SEC Delay interval for lines sent
-n Don’t do DNS resolution
-u UDP mode
-v Verbose
-o FILE Hex dump traffic
-z Zero-I/O mode (scanning)

它没有-q 选项。 -q 标志用于等待 x 秒以等待从服务器返回的响应。这通常有助于给服务器一些 x 秒的时间来响应并减少误报(如果有的话)。所以如果你的netcat版本还支持,建议使用

同理,除了检查 运行 模式(如果处于 read-only 模式则为“ro”,如果不处于 read-only 模式则为“rw”),我建议使用 zkServer.sh status 命令并 grep Mode 以查看实例处于哪种模式 运行。在集群中,动物园管理员作为领导者或追随者运行。因此,这增强了健康检查并保证 zookeeper 集群 运行(在 ro 或 rw 中)以及它在法定人数中。