1. 程式人生 > 實用技巧 >一次kafka報錯記錄 : kafka.errors.NoBrokersAvailable

一次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再重啟。

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

jps # 顯示kafka pid
kill -9 pid

4
重新啟動之後,程式正常執行。但又一個問題:之前使用上述啟動命令,是後臺自動啟動的,但是現在不是了,故使用後臺啟動命令:

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