gpt4 book ai didi

docker - 无法使用Sarama Golang软件包创建Kafka生产者客户端-“客户端/元数据在获取元数据时从代理处出错:EOF”

转载 作者:数据小太阳 更新时间:2023-10-29 03:22:41 26 4
gpt4 key购买 nike

版本:GoLang 1.10.2
卡夫卡4.4.1
Docker 18.03.1

我正在尝试使用Shopify的Sarama软件包来测试我的Kafka实例。我使用Docker compose来站起Kafka / Zookeeper,并且一切都成功运行。

当我尝试使用Sarama创建Producer客户端时,会引发错误。

当我运行以下

    package main

import (
"fmt"
"log"
"os"
"os/signal"
"time"

"strconv"

"github.com/Shopify/sarama"

)
func main() {


// Setup configuration
config := sarama.NewConfig()
config.Producer.Return.Successes = true
config.Producer.Partitioner = sarama.NewRandomPartitioner
config.Producer.RequiredAcks = sarama.WaitForAll
brokers := []string{"localhost:29092"}
producer, err := sarama.NewAsyncProducer(brokers, config)
if err != nil {
// Should not reach here
panic(err)
}

defer func() {
if err := producer.Close(); err != nil {
// Should not reach here
panic(err)
}
}()

我明白了

[sarama] 2018/06/12 17:22:05初始化新客户端

[sarama] 2018/06/12 17:22:05客户端/元数据从代理localhost:29092获取所有主题的元数据

[sarama] 2018/06/12 17:22:05已连接到本地主机上的代理:29092(未注册)

[sarama] 2018/06/12 17:22:05客户端/元数据在获取元数据时从代理获取错误:EOF

[sarama] 2018/06/12 17:22:05与经纪人本地主机的关闭连接:29092

{sarama] 2018/06/12 17:22:05客户端/元数据没有可用的代理将元数据请求发送到

[sarama] 2018/06/12 17:22:06关闭客户端
恐慌:kafka:客户端用尽了可用的代理以进行交谈(您的群集是否可以访问?)

goroutine 1 [正在运行]:
main.main()
/Users/benwornom/go/src/github.com/acstech/doppler-events/testprod/main.go:29 + 0x3ec
退出状态2

Sarama确实多次尝试创建生产者客户,但每次都失败。

我对Sarama的“NewAsyncProducer”方法的理解是,它调用了“NewClient”,无论您是要创建生产者还是使用消费者,都将调用该方法。 NewClient尝试从Kafka代理收集元数据,在我的情况下这是失败的。我知道它正在连接到Kafka经纪人,但是一旦连接成功,它似乎就会崩溃。任何意见将是有益的。我的网络连接很牢固,我想不出任何干扰服务器的信息。据我所知,对于现有主题,我只有一个代理和一个分区。我认为我不必手动将主题分配给经纪人。如果我的客户与经纪人建立联系,为什么我不能为生产者建立持久的联系?

这是在死之前来自kafka日志文件的。

__consumer_offsets-5-> Vector(1),connect-offsets-23-> Vector(1),__consumer_offsets-43-> Vector(1),__consumer_offsets-32-> Vector(1),__consumer_offsets-21-> Vector(1 ),__consumer_offsets-10-> Vector(1),connect-offsets-20-> Vector(1),__consumer_offsets-37-> Vector(1),connect-offsets-9-> Vector(1),connect-status- 4-> Vector(1),__consumer_offsets-48-> Vector(1),__consumer_offsets-40-> Vector(1),__consumer_offsets-29-> Vector(1),__consumer_offsets-18-> Vector(1),connect- offsets-14-> Vector(1),__consumer_offsets-7-> Vector(1),__consumer_offsets-34-> Vector(1),__consumer_offsets-45-> Vector(1),__consumer_offsets-23-> Vector(1), connect-offsets-6-> Vector(1),connect-status-1-> Vector(1),connect-offsets-17-> Vector(1),connect-offsets-0-> Vector(1),connect- offsets-22-> Vector(1),__consumer_offsets-26-> Vector(1),connect-offsets-11-> Vector(1),__consumer_offsets-15-> Vector(1),__consumer_offsets-4-> Vector(1 ),__consumer_offsets-42-> Vector(1), __consumer_offsets-9-> Vector(1),__consumer_offsets-31-> Vector(1),__consumer_offsets-20-> Vector(1),connect-offsets-3-> Vector(1),__consumer_offsets-1-> Vector(1 ),__consumer_offsets-12-> Vector(1),connect-offsets-8-> Vector(1),connect-offsets-19-> Vector(1),connect-status-3-> Vector(1),__confluent。 support.metrics-0-> Vector(1),__consumer_offsets-17-> Vector(1),__consumer_offsets-28-> Vector(1),__consumer_offsets-6-> Vector(1),__consumer_offsets-39-> Vector(1 ),__consumer_offsets-44-> Vector(1),connect-offsets-16-> Vector(1),connect-status-0-> Vector(1),connect-offsets-5-> Vector(1),connect- offsets-21-> Vector(1),__consumer_offsets-47-> Vector(1),__consumer_offsets-36-> Vector(1),__consumer_offsets-14-> Vector(1),__consumer_offsets-25-> Vector(1), __consumer_offsets-3-> Vector(1),__consumer_offsets-30-> Vector(1),__consumer_offsets-41-> Vector(1),connect-offsets-13-> Vector(1),connect-offsets-24-> Vector (1),connect-offsets-2-> Vec tor(1),connect-configs-0-> Vector(1),__consumer_offsets-11-> Vector(1),__consumer_offsets-22-> Vector(1),__consumer_offsets-33-> Vector(1),__consumer_offsets-0 -> Vector(1),connect-offsets-7-> Vector(1),connect-offsets-18-> Vector(1)))(kafka.controller.KafkaController)
[36mkafka_1 | [0m [2018-06-12 20:24:47,461] DEBUG [Controller id = 1]主题不在代理1 Map()的首选副本中(kafka.controller.KafkaController)
[36mkafka_1 | [0m [2018-06-12 20:24:47,462] TRACE [Controller id = 1]经纪人1的领导者不平衡比率为0.0(kafka.controller.KafkaController)

最佳答案

我遇到了同样的问题,并且做了以下解决我的问题的事情:

  • 检查您使用的是什么版本的Kafka。传递给NewAsyncProducer时,配置中指定的默认Kafka版本为V0_8_2_0。确保在配置中指定正确的Kafka版本:
    config := sarama.NewConfig()
    config.Version = sarama.V1_1_0_0
  • 确保您传递的代理URL正确。您应该传递代理URL,而不是Zookeeper URL或其他URL。默认的kafka端口为9092,因此,如果您使用默认端口,则网址应类似于BROKER_URL:9092
  • 关于docker - 无法使用Sarama Golang软件包创建Kafka生产者客户端-“客户端/元数据在获取元数据时从代理处出错:EOF”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50826247/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com