Kafka报错:kafka.errors.NoBrokersAvailable: NoBrokersAvailable

2,427 阅读1分钟

问题

www.jianshu.com/p/03e9b441e…

使用kafka-python想kafka写数据时报错:kafka.errors.NoBrokersAvailable: NoBrokersAvailable
代码如下:

**

from kafka import KafkaProducer
from kafka.errors import KafkaError

class KafkaPythonDemo(object):
    def __init__(self):
        self.producer = KafkaProducer(bootstrap_servers=["xx.xx.xx.xx:9092"])
        self.topic = 'my_first_topic'

    def producerTest(self):
        print('------ producer begins ------')
        n = 1
        try:
            while (n <= 1000):
                self.producer.send(self.topic, str(n).encode())
                print(f'send {str(n)}')
                n += 1
                time.sleep(0.5)
        except KafkaError as e:
            print(e)
        finally:
            self.producer.close()
            print('======= 生产完毕 =========')


if __name__ == "__main__":
    kafkaPythonDemo = KafkaPythonDemo()
    kafkaPythonDemo.producerTest()

解决方案

修改Kafka配置文件server.properties,将listeners=PLAINTEXT://x.x.x.x:9092修改为以下配置 (x.x.x.x为服务器对外的IP)

**

# listeners = PLAINTEXT://x.x.x.x:9092
advertised.listeners=PLAINTEXT://x.x.x.x:9092



作者:富士山下2020
链接:www.jianshu.com/p/03e9b441e… 来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。