gpt4 book ai didi

go - Sarama无法为Amazon MSK版本2.3.1生成消息

转载 作者:行者123 更新时间:2023-12-01 22:25:22 24 4
gpt4 key购买 nike

我正在使用sarama golang library将消息推送到Amazon MSK。直到现在我使用的是msk 2.2.1版,我的代码都可以正常工作,但是现在msk的版本已更改为2.3.1。现在,我无法将消息推送到主题。

错误:
分区-1
偏移-1
请求是针对此代理上不存在的主题或分区。

代码:

func getKafkaEventClient() (sarama.Client, error) {

if !setupDone {
return nil, errors.New("Invalid setup")
}

if kafkaEventClient != nil {
return kafkaEventClient, nil
}

err := initKafkaEventClient()
if err != nil {
return nil, err
}

return kafkaEventClient, nil
}

func initKafkaEventClient() (err error) {
config := sarama.NewConfig()
config.Net.TLS.Enable = false
config.Producer.Return.Successes = true
config.Version = sarama.V0_10_0_0

brokers := strings.Split(kafkaEventHost, ",") //split the host into brokers

kafkaEventClient, err = sarama.NewClient(brokers, config)
if err != nil {
log.Println("initKafkaClient: failed to create new kafka client", err)
return
}
}

func PushMessageToKafka(message string) {
client, err := getKafkaEventClient()
if err != nil {
return
}

producer, err := sarama.NewSyncProducerFromClient(kafkaEventClient)
if err != nil {
fmt.Println("PushMessageToKafka: failed to get producer", err)
return
}
var msg sarama.ProducerMessage
msg.Topic = "some_topic"
msg.Value = sarama.StringEncoder("some_message")
p, o, err := producer.SendMessage(&msg)

fmt.Println("Partition", p)
fmt.Println("Offset", o)

if err != nil {
fmt.Println("PushMessageToKafka: failed to push message to be displayed", err)
}
}
我已将sarama版本更改为maxVersion,也更改为 config.Version = sarama.MaxVersion,但不适用于Amazon MSK 2.3.1。
请提供一些解决方案。

最佳答案

调试了很多次后,我找到了解决方案。
这不是版本问题,实际上是返回客户端的代码

func getKafkaEventClient() (sarama.Client, error) {

if !setupDone {
return nil, errors.New("Invalid setup")
}

if kafkaEventClient != nil {
return kafkaEventClient, nil
}

err := initKafkaEventClient()
if err != nil {
return nil, err
}

return kafkaEventClient, nil
}
然后在这里 if kafkaEventClient != nil返回错误的前一个客户端。对于每个客户端,如果代理/主机正在更改,则我们必须创建一个新客户端,该客户端将能够找到我们要在其中推送消息的主题。如果我们要获取旧客户端并将消息推送到其他代理/主机中存在的主题,则将收到我上面提到的错误。

错误:
分区-1
偏移-1
请求是针对此代理上不存在的主题或分区。

我希望它能解决面临相同问题的某人的问题。

关于go - Sarama无法为Amazon MSK版本2.3.1生成消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60275011/

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