检查动物园管理员运行模式的正确方法

问题描述

有人可以让我知道通过netcat检查zookeeper运行模式的推荐方法吗?

文档指出echo "isro" | nc localhost 2181

但是在少数links中,建议将-q与netcat一起使用

有人可以让我知道是否需要使用-q吗?

  • Zookeeper版本3.4.13
  • 操作系统-Ubuntu 18

解决方法

这完全取决于您拥有的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版本仍然支持它,我建议您使用它。

同样,除了检查运行模式(如果处于只读模式,则检查“ ro”;如果不是处于只读模式,则检查“ rw”),我建议使用 zkServer.sh状态命令并grep 模式,以查看实例以哪种模式运行。在集群中,动物园管理员以领导者或跟随者的身份运行。因此,这可以增强运行状况检查,并确保Zookeeper群集正在运行(在ro或rw中)以及处于仲裁状态。