一次kafka报错记录 : kafka.errors.NoBrokersAvailable

kafka.errors.NoBrokersAvailable

一、问题起因:

在执行 consumer = KafkaConsumer(bootstrap_servers=broker_list)时,
报错:kafka.errors.NoBrokersAvailable

二、解决过程

1、
百度谷歌,https://github.com/dpkp/kafka-python/issues/1308?tdsourcetag=s_pctim_aiomsg
这里说因为没有设置api_version。当设置api_version 之后,没提示kafka.errors.NoBrokersAvailable,但是程序卡住不动。
2、
https://wp.huangshiyang.com/kafkapython-转使用python操作kafka
搜索过程中看到这个文章,因此想新建一个topic 进行测试。

bin/kafka-topics.sh --create --topic topicname --replication-factor 1 --partitions 1 --zookeeper localhost:2181  

产生了新的错误:Replication factor: 1 larger than available brokers: 0
意味着 kafka关掉了没有重新启动 。因此去启动kafka

bin/kafka-server-start.sh config/server.properties

此时,又报错:Failed to acquire lock on file .lock in /tmp/kafka-logs. A Kafka instance in another process or thread is using this directory.

说明是kafka启动的问题,但是查看kafka进程,其是存在的。所以关闭kafka再重启。

ps : https://www.qedev.com/bigdata/117719.html
一些博客如上文,提到的解决办法为:删除 logs文件夹再重启,因为是生产环境的数据,故没有尝试。

3
关闭kafak,其自带的 kafak-server-stop.sh 使用无效。jps依然可以看到kafka。https://www.cnblogs.com/ro0k1e/p/12521019.html

jps # 显示kafka pid
kill -9 pid
or
执行 netstat -lnp|grep 9092 
在执行结果中找到进程号
执行 kill -9 进程号
再尝试启动Kafka

4
重新启动之后,程序正常运行。但又一个问题:之前使用上述启动命令,是后台自动启动的,但是现在不是了,故使用后台启动命令:

bin/kafka-server-start.sh -daemon config/server.properties

三 同样的错误(2020-8-3)

这次kafak运行正常,但是依然kafka.errors.NoBrokersAvailable , 重启之后bug消失。但不知何原因。

原文地址:https://www.cnblogs.com/leimu/p/13384547.html