在滚动升级/重启期间,如何检测 kafka 代理何时“完成”?

Ano*_*noE 5 upgrade apache-kafka

我需要自动滚动重启 kafka 集群(3 个 kafka 代理)。我可以轻松地手动完成 - 一个接一个地重新启动,同时检查日志以查看何时正常(例如,当新进程加入集群时)。

自动执行此检查的好方法是什么?我如何询问代理是否已启动并正在运行、是否已与其同行连接、所有主题是否都是最新的等等?在我的重启脚本中,我可以访问指标,但坦率地说,我并没有真正在那里看到一个可以让我清晰地了解的指标。

另一种方法是询问一个好的“就绪”探测是什么,它不只是检查一些 TCP/IP 端口,而是查看实际的服务器......

cri*_*007 5

我建议公开 JMX 指标并跟踪以下集群健康状况

  • 控制器数量(整个集群必须为 1)
  • 在复制分区下(对于健康的集群应该为零)
  • 不干净的领导者选举(如果您不禁用此功能以server.properties确保指标计数中没有)
  • ISR 在合理的时间段内收缩,例如 10 分钟窗口(应该没有)

此外,Yelp 具有用 Python 实现的滚动重启工具,这需要在代理上安装 Jolokia JMX 代理,并且它会轮询指标以确保上述某些条件成立