我用docker来运行Kafka制作人的命令
kafka-console-producer.sh --topic USER_CREATED_TOPIC --broker-list xxx.xx.x.x:9092`
其中x是来自分配的代理ip的数字。
我的 server.properties
文件包含
advertised.port=9092
advertised.host.name=xxx.xx.x.x.
listeners=PLAINTEXT://xxx.xx.x.x:9092 line
advertised.listeners=PLAINTEXT://xxx.xx.x.x:9092
每当我用命令从docker容器启动消费者时
kafka-console-consumer.sh --topic USER_CREATED_TOPIC --from-beginning --bootstrap-server xxx.xx.x.x:9092
然后在我的producer控制台中写一些东西,我在consumer中得到结果
但是,当我尝试通过python脚本连接时,使用:
from kafka import KafkaConsumer
consumer =
kafkaConsumer("USER_CREATED_TOPIC",bootstrap_servers=
['xxx.xx.x.x:9092'])
for msg in consumer:
print (msg)
我得到一个 NoBrokersAvailable
错误。
我读了stackoverflow上的几个线程(列出了 server.properties
基于这些答案),但我仍然无法通过python连接到Kafka制作人。
感谢您的帮助。
1条答案
按热度按时间inn6fuwd1#
我看到的唯一语法问题是服务器地址不应该在列表中,因此如下所示:
没有运行的集群也会出现这个错误。首先创建一个主题:
然后测试是否存在:
最后,确保有一个生产者正在创建要收听的消息: