【发布时间】:2021-06-09 07:07:14
【问题描述】:
我已经尝试过this tutorial 并成功使用了在我工作地点的服务器上发布的 kafka 主题。我不是生产者,只是纯粹的消费者。但是,该教程中的代码是在终端中流式传输的。现在我想用 Python 尝试一下,并将消息记录到文本文件(或类似的文件)中。
这是我使用的代码,在阅读了几个线程和教程之后(例如here):
from kafka import KafkaConsumer
bootstrap_servers = ['xxxxxx:xxxx']
topicName: = 'my_topic_name'
consumer = KafkaConsumer(topicName, group_id='group1', bootstrap_servers=bootstrap_servers, consumer_timeout_ms=1000)
for msg in consumer:
print(msg.value)
这里我想先打印出消息。但我在 1000 毫秒超时后收到此错误:
kafka.errors.NoBrokersAvailable: NoBrokersAvailable
这听起来合乎逻辑,因为需要代理,而上面的代码似乎对代理没有任何作用。
如果我不设置consumer_timeout_ms=1000ms,Python 控制台就会卡住,不显示任何内容。
我该如何解决这个问题?
更多详情: 我正在并行执行以下操作:
1 - 在一个终端中运行 zookeeper
2 - 在另一个终端运行 kafka 集群
3 - 使用命令kafka-consumer-console 在另一个终端中(很好地)流式传输主题
4 - 在另一个终端中,运行此问题中的 Python 代码。
所有这些终端都是 WLS2 (Windows) 中的 Ubuntu。
【问题讨论】:
-
卡住而不显示任何内容 - 因为您的主题没有任何内容...也许? 上面的代码似乎对代理没有任何作用 - 是的,
bootstrap_servers。听起来您的网络配置错误或您提供了错误的地址
标签: python apache-kafka