kafka报错LEADER_NOT_AVAILABLE
三点集群,之前运行ok,重启后报错:
Error while fetching metadata with correlation id 10 : {yqjp-devices-sendPackage=LEADER_NOT_AVAILABLE}
伴随报错:
Caused by: java.lang.ArithmeticException: / by zero
(这个报错貌似是程序架构里面关于kafka的lib报出,
相关代码:return DefaultPartitioner.toPositive(Utils.murmur2(keyBytes)) % numPartitions;
但对应topic的partition应该为1,按理不该报错,没搞明白)
但利用脚本测试又是OK的,说明zookeeper和kafka配置应该没有问题,测试脚本参考(单节点测试,多节点同理):
kafka-topics.sh --create --zookeeper 192.168.1.22:2181 --replication-factor 2 --partitions 1 --topic HelloWorld
kafka-console-producer.sh --broker-list 192.168.1.22:9092 --topic HelloWorld
kafka-console-consumer.sh --zookeeper 192.168.1.22:2181 --from-beginning --topic HelloWorld
怀疑topic出了问题,删除报错的topic,先用如下脚本删除:
./kafka-topics.sh --delete --zookeeper 【zookeeper server】 --topic 【topic name】
但仍然报错,感觉没删除干净,只是标记为删除状态。
后来采用kafka可视化管理工具ZK_UI把里面的东西全部删除(测试环境),并重启了zookeeper和kafka,恢复正常,之前报错的topic也不报错了,ZK_UI安装参考:
https://www.ilanni.com/?p=12467
http://www.cnblogs.com/smail-bao/p/7794636.html
全程搭建无报错,感谢分享。