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消失。但不知何原因。
四、bug再現 (2020-9-24)
依舊是重啟kafak