python - 无法使用 python-kafka 消费消息
问题描述
我试图复制博客中给出的步骤。在尝试时,给出了一个Kafka Consumer
和Kafka Producer
python 代码,我可以在 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 文件中工作?
解决方案
我刚刚将 producer.flush() 添加到生产者代码中,它就开始工作了。
因为 Kafka 客户端批量发送消息,而不是立即减少代理的负载。
您最初没有发送足够的数据来自行发生刷新,因此您的数据只是在您的应用程序结束时位于内存中。
参考batch.size
生产者属性
推荐阅读
- javascript - 如何从外部应用程序查询 WordReference
- pytorch - 如何在 Pytorch 上使用具有模型并行性的 apex AMP(自动混合精度)?
- python - 如何在 Python 中获取退出代码?
- python - Django默认图像似乎没有加载
- html - 当容器滚动到底部时元素向上扩展
- python-3.x - 如何生成频率为周二至周六的熊猫日期范围?
- javascript - 当用户在提示中输入他的名字时,我的 JavaScript If-Statement 代码没有给出正确的结果
- jenkins - 想用 jenkins 参数参数化 ansible playbook 中的值
- google-play - 为什么我在 Play 商店中有效的最新 Google App 版本在第一次更新时不适用于现有用户
- javascript - 如何让 DataTables 搜索与 AJAX 结果一起正常工作?