当使用java Kafka(0.8)高级别消费者时,有没有办法确定重新平衡是否已经或需要发生?
谢谢!
答案 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 命令作为参数传递的单词匹配的日志。
希望它有所帮助。