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

Java 无法从docker中运行的服务向kafka生成消息,java,docker,apache-kafka,kafka-producer-api,Java,Docker,Apache Kafka,Kafka Producer Api,我在端口5000的docker容器中运行了一个rest服务,该服务用于在docker容器中运行完kafka主题后生成消息 我已使用以下属性配置producer客户端:- bootstrap.servers=localhost:9093 我已经用下面的命令启动了我的控制:- docker run -d -p 127.0.0.1:5000:5000 <contained id> 尽管在我尝试制作卡夫卡主题时有所有配置,但我得到以下错误:- org.apache.kafka.commo

我在端口5000的docker容器中运行了一个rest服务,该服务用于在docker容器中运行完kafka主题后生成消息

我已使用以下属性配置producer客户端:-

bootstrap.servers=localhost:9093
我已经用下面的命令启动了我的控制:-

docker run -d -p 127.0.0.1:5000:5000 <contained id>
尽管在我尝试制作卡夫卡主题时有所有配置,但我得到以下错误:-

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

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

在现实生活中,
广告的.host.name
永远不应该是
localhost

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

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

或者,您可以使用
--net=host
运行容器,但我认为您最好正确配置播发的主机名

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