当前位置: 首页 > 面试题库 >

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

班宏毅
2023-03-14
问题内容

我在端口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.

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


问题答案:

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

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

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

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



 类似资料:
  • 我有以下问题: 我在aws上只使用1个worker和broker节点建立了一个尽可能基本的汇合平台。 我对所有与人脉和关系网有关的事情都很敏感,所以我希望有人能帮助我

  • 我正在使用java API实现apache kafka producer。Apache Kafka安装在localhost上。Zookeeper也在运行,但Producer.send()函数仍然卡在发送消息上,消息没有发布。 我已经创建了“快速消息”主题。

  • 我在docker compose yml文件中为广告侦听器配置了以下配置 警告O.apache.kafka.clients.networkclient-获取相关id为1的元数据时出错:{foo=leader_not_available} 主机可以从我的机器ping,因为它都在同一个网络中,没有防火墙问题。在docker容器中使用命令时,可以看到相同的主机名。我是不是漏掉了什么?

  • 我正在Ubuntu WSL2上成功运行最新的Kafka。我可以在WSL上运行的Ubuntu中启动zookeeper、kafka服务器、创建主题、控制台制作和控制台消费。然而,当我进入Windows上的Intellij并创建一个简单的Java生成器时,它似乎无法连接到代理 版本 服务器属性我在另一个SO答案中找到了此设置,但这些设置对我不起作用。 然后尝试(并重新启动动物园管理员和Kafka) 生产

  • 注:如果你不喜欢使用sudo,你可以查看这里非root用户运行 这里有一个例子,使用数据卷在两个CouchDb之间共享相同的数据容器,这个可以用于热升级,测试不同版本的CouchDB数据等等。 创建第一个数据库 现在我们创建/var/lib/couchdb作为数据卷 COUCH1=$(sudo docker run -d -p 5984 -v /var/lib/couchdb shykes/cou

  • 这个例子的目的是向您展示如何构建一个预装Riak的docker镜象。 创建Dockerfile 创建一个空文件Dockerfile $ touch Dockerfile 接下来,定义你想要来建立你镜像的父镜像。我们将使用Ubuntu(tag:最新版),从Docker Hub中下载: # Riak # # VERSION 0.1.0 # Use the Ubuntu base ima