恐慌:kafka:客户端已经没有可用的代理与之交谈(您的集群是不是可达?)

Posted

技术标签:

【中文标题】恐慌:kafka:客户端已经没有可用的代理与之交谈(您的集群是不是可达?)【英文标题】:panic: kafka: client has run out of available brokers to talk to (Is your cluster reachable?)恐慌:kafka:客户端已经没有可用的代理与之交谈(您的集群是否可达?) 【发布时间】:2020-03-28 21:27:32 【问题描述】:

我正在尝试按照此 URL https://medium.com/google-cloud/kubernetes-hpa-autoscaling-with-kafka-metrics-88a671497f07 中给出的步骤使用带有 kafka 指标的 HPA 自动扩展

但是,当我部署第 3 步中给出的 yaml 文件时,pod 没有出现。日志显示以下错误。


恐慌:kafka:客户端已用完可用的代理来与之交谈(您的集群是否可达?) goroutine 1 [正在运行]:main.NewExporter(0xc4200bb7e0, 0x2, 0x2, 0x100, 0x96d438, 0x0, 0x96d438, 0x0, 0x0, 0x96d438, ...) /home/travis/gopath/src/github.com/danielqsj/kafka_exporter/kafka_exporter.go:185 +0xbbc main.main() /home/travis/gopath/src/github.com/ danielqsj/kafka_exporter/kafka_exporter.go:606 +0x3aa7

【问题讨论】:

【参考方案1】:

查看提供的 URL 中的先决条件:

    您有一个 Docker 正在运行。你知道这个游戏的规则。 ;) 您有一个在 GCP 上运行的 Kubernetes 集群 (GKE)。 您已为 GKE 集群安装并配置了 kubectl CLI。

这些没有提到 kafka 集群的存在,并且这些步骤不包括任何 kafka 部署。那么你打算如何从 kafka 导出指标呢?

在第 3 步中,yaml 中的spec.template.spec.containers[0].command 路径明确定义了要使用的两个代理:

- "--kafka.server=my-kafka-broker-1:9092"
- "--kafka.server=my-kafka-broker-2:9092"

如果这些都不存在,当然kafka 导出器会抛出一个错误,指出没有经纪人!

【讨论】:

感谢您的回复!基本上,我想根据 kafka 指标进行扩展。我在执行第 3 步的地方运行了 GCP 集群。我需要另一个集群来运行 KafKa 吗? 您打算如何从 kafka 导出指标? >> 如文章中所述,我正在使用 promethus 从 Kafka 读取矩阵并推送到 Google stackdriver。 您能帮我完成文章中缺少的部分吗? 请澄清:您是否已经在某处安装了 Kafka?这可能很明显,但在您的原始问题中没有提到这一点,并且 URL 中没有定义设置 Kafka 实例的步骤...... 没有。我刚刚按照文章中的步骤进行操作,所以我认为我需要运行它。我可以使用现有的 GKE 集群,还是应该启动一个 GCP 实例并运行它?

以上是关于恐慌:kafka:客户端已经没有可用的代理与之交谈(您的集群是不是可达?)的主要内容,如果未能解决你的问题,请参考以下文章

如何列出集群中所有可用的 Kafka 代理?

spring boot kafka 在将 testcontainers 与 kafka、zookeeper、模式注册表一起使用时因“代理可能不可用”而失败

那里有测试 JsonRpc 服务器吗?

创建 Kafka 主题时出错 - 复制因子大于可用代理

创建 Kafka 主题时出错:- 复制因子大于可用代理

Kafka分布式消息系统剖析