【发布时间】: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()
但是这给出了: kafka.errors.KafkaTimeoutError: KafkaTimeoutError: 60.0 秒后更新元数据失败。
如何解决?
【问题讨论】:
-
你能再解释一下吗?
-
如果您使用 Docker for mac,网络存在一定的限制,并为此提供了一些解决方法,请参阅 docs.docker.com/docker-for-mac/networking/… - 对于 docker-compose,您需要添加
link:看看这个答案stackoverflow.com/a/48231883/1475386 -
谢谢,但我在 Ubuntu 16.04 上使用 Docker
-
对我来说,这是因为我在主题名称中使用了一个空格。可能是您还使用了无效的主题名称。
标签: docker apache-kafka