我有一个使用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)文档的每一步(最后一步除外)。
一切正常,但我的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
答案 0 :(得分:0)
没有看到您的撰写文件,根据您的docker命令,localhost:9092
可能无法在您的Python代码中工作
kafka:9092