这个问题已经存在:
如何修复在python中不接收kafka消息而在shell中接收相同消息的问题?
去年关门了。
我有一套使用Kafka的debezium。我能够使用来自kafka控制台的消息,如文档中所述。但是,当我在本地使用python创建kafka使用者时,我无法使用消息。应该注意的是,Kafka控制台工作得很好!
我试着调查这个问题,但没有类似的环境/情况
我要连接的python代码是:
from kafka import KafkaConsumer
consumer = KafkaConsumer('dbserver1.inventory.customers', group_id='my-group', bootstrap_servers=['localhost:9092'], auto_offset_reset='earliest')
for message in consumer:
print(message)
不管是已有的消息还是推送到这个主题的新消息,它都会变成空白。
我确信这些消息是存在的,因为当我打开一个控制台使用者时,我可以看到这些消息。
只是想澄清一下整个设置:我遵循了这一点(https://github.com/debezium/debezium-examples/tree/master/tutorial#using-mongodb)每个步骤的doc(最后一步除外)。除了我的python代码外,其他一切都正常。我还试着用 kafka:9092
引导服务器,但最终出现错误:
kafka.errors.NoBrokersAvailable: NoBrokersAvailable
我的本地电脑是mac os。
仅供参考:我可以获取其他所有内容,如主题:
>>> consumer = KafkaConsumer('dbserver1.inventory.customers', group_id='my-group', bootstrap_servers=['localhost:9092'], auto_offset_reset='earliest')
>>> consumer.topics()
{'my_connect_offsets', 'my_connect_configs', 'dbserver1.inventory.orders', 'connect-status', 'dbserver1.inventory.customers', 'dbserver1.inventory.products'}
我通过命令启动消费者:
docker-compose -f debezium-mongodb.yaml exec kafka /kafka/bin/kafka-console-consumer.sh \
--bootstrap-server kafka:9092 \
--from-beginning \
--property print.key=true \
--topic dbserver1.inventory.customers
1条答案
按热度按时间fhity93d1#
没有看到你的文件,
localhost:9092
很可能无法在基于docker命令的python代码中工作如果python代码没有在容器中运行,则需要从其他端口读取。如果它在容器中运行,则必须使用
kafka:9092
您使用的端口取决于容器的播发侦听器从本地计算机连接到Kafka在docker中运行