首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Filebeat和Kafka:客户端已经没有可用的经纪人可以与之交谈了

Filebeat和Kafka:客户端已经没有可用的经纪人可以与之交谈了
EN

Stack Overflow用户
提问于 2021-03-08 13:53:15
回答 1查看 2K关注 0票数 0

我有两个服务器,让我们将它们命名为server1server2

server1上,我有一个运行Kafkadocker容器。Kafka代理端口和动物园管理员被映射到主机。

server2上,我想安装Filebeat,它向server1上的Kafka发送一些日志消息。它似乎可以建立起与经纪人的联系.

代码语言:javascript
复制
[publisher_pipeline_output]        pipeline/output.go:143        Connecting to kafka(server1:9092)
[publisher_pipeline_output]        pipeline/output.go:151        Connection to kafka(server1:9092) established

...but实际发送错误消息失败:

代码语言:javascript
复制
[kafka] kafka/client.go:317     Kafka (topic=sample-topic): kafka: client has run out of available brokers to talk to (Is your cluster reachable?)

我也尝试过从我的server2中运行server2(也是在一个码头中),这实际上是有效的!唯一的区别是我的Filebeat不是在docker容器中运行,而是直接在server2上运行。

那我忘了什么?知道如何进一步调试这个问题吗?

作为ADVERTISED_HOST,在运行容器时,我确实使用了server1主机名。

用于澄清:--我正在使用spotify/kafkaKAfka (https://hub.docker.com/r/spotify/kafka),并像这样运行它:

代码语言:javascript
复制
docker run -p 2181:2181 -p 9092:9092 --name kafka --env ADVERTISED_HOST=server1 --env ADVERTISED_PORT=9092 spotify/kafka

我的Filebeat配置如下所示:

代码语言:javascript
复制
output.kafka:
  hosts: ["server1:9092"]
  topic: 'sample-topic'
  partition.round_robin:
    reachable_only: false

  required_acks: 1
  compression: gzip
  max_message_bytes: 1000000
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-08 14:06:00

卡夫卡端口代理和动物园管理员被映射到主机

对于Kafka,您需要的不仅仅是端口映射。还需要将公告的侦听器地址(已公布的主机是不推荐的属性)设置为运行容器的服务器的外部主机名/ip,以便从另一台计算机访问它。您还需要侦听器地址为0.0.0.0

文件不在码头容器中运行,而是直接在server2上运行。

应该不重要

如果控制台生产者在另一台机器上工作,那么您将期望任何其他Kafka客户端也能工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66531114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档