使用Kafka高级消费者时,有没有办法获得重新平衡的通知?

时间:2014-10-21 14:22:19

标签: java apache-kafka

当使用java Kafka(0.8)高级别消费者时,有没有办法确定重新平衡是否已经或需要发生?

谢谢!

2 个答案:

答案 0 :(得分:1)

正如上面提到的Cesar,没有干净的方式来获得有关重新平衡的通知。但请注意,当读取器或代理连接或断开连接时以及主题的分区数发生更改时,会发生重新平衡。因此,您可以监视经纪人和读者注册的Zookeeper节点。请注意,它可能很脆弱,因为Kafka相关的ZK节点布局可能会在未来的Kafka版本中发生变化。

请参阅Kafka docs

中的Broker Node Registry,Consumer Id Registry和Partition Owner注册表部分

此外,它并不是很明显,但重新平衡可能会失败,而高级别的消费者可能会抛出ConsumerRebalanceFailedException。所以这也是你需要考虑的事情。有关重新平衡过程的高级概述,请参阅Kafka rebalancing

答案 1 :(得分:0)

Kafka自动执行此操作,除了监控日志之外无法确定这一点。您可以做的是

tail -f <myKafkaLogFiles> | grep rebalance  

我不记得日志是否打印了这个词&#34;重新平衡&#34;或者&#34;重新平衡&#34;,也许尝试两个单词并检查。上面的命令只会在屏幕上打印与 grep 命令作为参数传递的单词匹配的日志。

希望它有所帮助。