首页 > 解决方案 > 无法使用 python-kafka 消费消息

问题描述

我试图复制博客中给出的步骤。在尝试时,给出了一个Kafka ConsumerKafka Producerpython 代码,我可以在 python 交互式终端中运行代码,并且消费者控制台能够提供输出,但是如果我将它们传递到 python 文件(*.py)中,它不会消耗任何东西。

消费者

from kafka import KafkaConsumer
consumer = KafkaConsumer('sample')
for message in consumer:
    print (message)

制片人

from kafka import KafkaProducer
producer = KafkaProducer(bootstrap_servers='localhost:9092')
producer.send('sample', b'Hello, World!')
producer.send('sample', key=b'message-two', value=b'This is Kafka-Python')

如何使它在 python 文件中工作?

标签: pythonapache-kafkakafka-python

解决方案


我刚刚将 producer.flush() 添加到生产者代码中,它就开始工作了。

因为 Kafka 客户端批量发送消息,而不是立即减少代理的负载。

您最初没有发送足够的数据来自行发生刷新,因此您的数据只是在您的应用程序结束时位于内存中。

参考batch.size生产者属性


推荐阅读