kafka.errors.KafkaTimeoutError: KafkaTimeoutError: 60.0 秒后更新元数据失败

Posted

技术标签:

【中文标题】kafka.errors.KafkaTimeoutError: KafkaTimeoutError: 60.0 秒后更新元数据失败【英文标题】:kafka.errors.KafkaTimeoutError: KafkaTimeoutError: Failed to update metadata after 60.0 secs 【发布时间】:2018-06-23 23:54:23 【问题描述】:

我启动一个 docker 容器来运行一个 Kafka 服务器

docker run -p 2181:2181 -p 9092:9092 --env ADVERTISED_HOST=192.168.99.100 --env ADVERTISED_PORT=9092 spotify/kafka

我找到了 Docker 容器的 IP 地址。这是 172.17.0.2,我可以 ping 这个地址。

现在我想要一个发送消息的生产者:

from kafka import KafkaProducer

producer = KafkaProducer(bootstrap_servers='172.17.0.2:9092')

for i in range(100):
    producer.send('foobar', b'hola')

producer.close()

但是这给出了: 。

如何解决?

【问题讨论】:

github.com/moby/moby/issues/2174 你能再解释一下吗? 如果您使用 Docker for mac,网络存在一定的限制,并为此提供了一些解决方法,请参阅 docs.docker.com/docker-for-mac/networking/… - 对于 docker-compose,您需要添加 link: 看看这个答案***.com/a/48231883/1475386 谢谢,但我在 Ubuntu 16.04 上使用 Docker 对我来说,这是因为我在主题名称中使用了一个空格。可能是您还使用了无效的主题名称。 【参考方案1】:

有同样的错误,但因为我的主题名称不正确/设置,与python_noob 相同。

【讨论】:

以上是关于kafka.errors.KafkaTimeoutError: KafkaTimeoutError: 60.0 秒后更新元数据失败的主要内容,如果未能解决你的问题,请参考以下文章