无法从Docker中运行的服务向kafka生成消息
我在端口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=localhostadvertised.port=9093
尽管我尝试制作kafka主题时已进行了所有配置,但还是遇到了以下错误:-
org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.
有人可以指出实际问题在哪里吗?
回答:
在现实生活中,advertised.host.name
永远都不应该如此localhost
。
在您的情况下,您以桥接网络模式运行Docker容器,因此它将无法通过来访问代理localhost
,因为它将指向容器网络,而不是主机。
为了使其正常工作,您应该将advertised.host.name
和设置为bootstrap.servers
返回的IP地址ifconfig
docker0(在您的情况下,可能不是docker0,但您明白了)。
另外,您可能使用来运行容器--net=host
,但我认为您最好正确配置广告的主机名。
以上是 无法从Docker中运行的服务向kafka生成消息 的全部内容, 来源链接: utcz.com/qa/415203.html