我有一个rest服务运行在端口5000的docker容器中,用于在docker容器中运行的kafka主题上生成消息。
我已使用以下属性配置producer客户端:-
bootstrap.servers=localhost:9093
我从下面开始我的工作command:-
docker run -d -p 127.0.0.1:5000:5000 <contained id>
我还做了以下配置来公布kafka主机和端口
advertised.host.name=localhost
advertised.port=9093
尽管有所有的配置,当我试图产生一个Kafka主题,然后我得到下面error:-
org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.
有人能指出真正的问题在哪里吗?
1条答案
按热度按时间kpbpu0081#
在现实生活中,
advertised.host.name
不应该是localhost
.在您的例子中,您在网桥网络模式下运行docker容器,因此它将无法通过
localhost
,因为它将指向容器网络,而不是主机。要使它工作,你应该设置
advertised.host.name
以及bootstrap.servers
返回的ip地址ifconfig docker0
(在你的情况下可能不是docker0,但你明白了)。或者,您可以使用
--net=host
,但我认为您最好正确配置播发的主机名。