一尘不染

无法从Docker中运行的服务向kafka生成消息

docker

我在端口5000上的docker容器中运行了一个REST服务,该服务用于通过kafka主题生成消息,而该主题用尽了docker容器。

我为生产者客户端配置了以下属性:-

bootstrap.servers=localhost:9093

我已经用下面的命令开始了包含:

docker run -d -p 127.0.0.1:5000:5000 <contained id>

我还做了以下配置来宣传kafka主机和端口

advertised.host.name=localhost
advertised.port=9093

尽管我尝试制作kafka主题时已进行了所有配置,但还是遇到了以下错误:-

org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.

有人可以指出实际问题在哪里吗?


阅读 480

收藏
2020-06-17

共1个答案

一尘不染

在现实生活中,advertised.host.name永远都不应该如此localhost

在您的情况下,您以桥接网络模式运行Docker容器,因此它将无法通过来访问代理localhost,因为它将指向容器网络,而不是主机。

为了使其正常工作,您应该将advertised.host.name和设置为bootstrap.servers返回的IP地址ifconfig docker0(在您的情况下,可能不是docker0,但您明白了)。

另外,您可能使用来运行容器--net=host,但我认为您最好正确配置广告的主机名。

2020-06-17