我如何衡量卡夫卡重新平衡所需的时间?

时间:2017-09-21 13:59:52

标签: apache-kafka kafka-producer-api

我对卡夫卡很新。所以这个问题可能非常基础。 我想要实现的是找出在代理失败时重新平衡所需的时间,然后再添加回来。 从我阅读文档(http://kafka.apache.org/documentation/#basic_ops_restarting)开始。当经纪人失败或被取消进行维修时

  • It will sync all its logs to disk to avoid needing to do any log recovery when it restarts (i.e. validating the checksum for all messages in the tail of the log). Log recovery takes time so this speeds up intentional restarts.

  • It will migrate any partitions the server is the leader for to other replicas prior to shutting down. This will make the leadership transfer faster and minimize the time each partition is unavailable to a few milliseconds.

我想要做的是找出migrate any partitions that the server is the leader for to other replicas

所花费的时间

我的kafka设置是3个代理节点和3个zk节点。

此外,当我将此节点添加回auto.rebalance=true的属性时,再平衡再次启动,并重新选举领导者。 我如何衡量这个时间?

1 个答案:

答案 0 :(得分:0)

数据副本中没有“迁移”。当干净地关闭经纪人时,控制器将简单地从可用的副本中为经纪人作为领导者的所有分区选出一个新的领导者,从而快速过渡。

您可以监控领导者选举的一些指标。 从0.11.0.0开始,代理公开了许多Controller指标,包括:

kafka.controller:type=ControllerStats,name=AutoLeaderBalanceRateAndTimeMs

跟踪汽车领导者重新平衡的速度和持续时间。 KIP中提供了0.11中添加的控制器指标的完整列表: https://cwiki.apache.org/confluence/display/KAFKA/KIP-143%3A+Controller+Health+Metrics#KIP-143:ControllerHealthMetrics-ControllerMetrics

如果您运行的是旧版本(<0.11.0.0),则必须依赖以下指标:

kafka.controller:type=ControllerStats,name=LeaderElectionRateAndTimeMs

这包括任何领导人选举。