公司有多套 Kafka 集群,Kafka 依赖 ZooKeeper 提供分布式协调服务,研究一下关于 ZooKeeper 的监控指标查看。

Zookeeper 在 Kafka 中的应用

  • Topic 配置管理: Topic 的配置会注册到 Zookeeper 中 的 config 节点下,根据 config 节点来动态更新配置;
  • Broker 管理: 在每个 Broker 启动时,都会注册到 Zookeeper 的 brokers 节点下;
  • Topic 及 Partition 管理: Topic 会注册到 brokers 节点下的 topics 节点下,Partition 会注册到 Topic 的节点下;
  • Producer 负载均衡: Producer 将消息发布到 Topic 时,会根据 Zookeeper 的 brokers 节点下的 Broker 来进行动态的负载均衡;
  • Consumer 负载均衡: Consumer 从 Topic 拉取消息时,同样也需要根据 Zookeeper 的 brokers 节点下的 Broker 来进行动态的负载均衡;
  • 消费管理: 每个 Partition 只能被 Consumer Group 中的一个 Consumer 进行消费,因此需要关联 - Partition 与 Consumer 之间的关系,将 Consumer 的 Consumer ID 注册到相关联的 Partition 节点的临时节点上;
  • Offset 记录: 在 Consumer 对指定 Partition 进行消息消费的过程中,需要将 Partition 的消费数量记录到 Zookeeper 中。

四字监控命令

# 输入
echo conf | nc localhost 2181 

# 输出
clientPort=2181
secureClientPort=-1
# zk 用于保存内存数据库的快照的目录,除非设置了dataLogDir,否则这个目录也用来保存更新数据库的事务日志。
# 在生产环境使用的 zk 集群,强烈建议设置 dataLogDir,让 dataDir 只存放快照,
# 因为写快照的开销很低,这样 dataDir 就可以和其他日志目录的挂载点放在一起。
dataDir=/tmp/zookeeper/data/version-2
dataDirSize=0
# zk 的事务日志路径
dataLogDir=/tmp/zookeeper/datalog/version-2
dataLogSize=424
# 每个 tick 的毫秒数,每个确认消息持续 3 秒,等待应答。
tickTime=3000
maxClientCnxns=0
minSessionTimeout=6000
maxSessionTimeout=60000
serverId=0
  • conf: 查询 Zookeeper 服务的配置信息。
  • cons: 列出连接到 Zookeeper 服务的所有客户端的完整连接和会话详细信息。包括接收和发送的数据包数量、会话id、操作延迟、最后执行的操作等信息。
  • crst: 重置服务端的连接和会话统计信息。
  • dump: 适用于 Leader 节点,列出未完成的请求和临时节点。
  • envi: 列出服务器的环境信息。
  • ruok: 测试服务是否处于正确运行状态,如果正常返回 imok,否则返回空。
  • srst: 重置服务的统计信息。
  • srvr: 列出服务的详细信息。
  • wchs: 列出服务的 Watcher 的简要信息。
  • wchc: 按会话列出服务的 Watcher 的详细信息。
  • wchp: 按路径列出服务带有 znode 列表的 Watcher 的详细信息。如果 Watcher 的数量多,会影响服务器性能,请谨慎使用。
  • dirs: 以字节为单位显示快照和日志文件的总大小。

报错处理

conf is not executed because it is not in the whitelist.

# 配置文件中添加
# 开启四字命令
4lw.commands.whitelist=*
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐