【发布时间】:2019-08-10 12:53:06
【问题描述】:
我正在使用 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
并在我的生产者控制台中写一些东西,我会在消费者中得到结果。(这里没有错误)
但是,当我尝试通过 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 生产者。
感谢任何帮助。
【问题讨论】:
-
修改
server.properties文件后是否重启了Kafka broker? -
@GiorgosMyrianthous 是的,我做到了
-
尽管即使我使用 docker commit 更改似乎也不适用。
标签: python apache-kafka