gpt4 book ai didi

go - 干净关闭后尝试重新连接到 NSQ

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

我在我的 Go 微服务中创建了一个 NSQ 生产者,我正在尝试创建一个方法,让它在 NSQ 重新启​​动后尝试重新连接。

我查看了 nsq 配置文档,希望看看我是否可以在重新启动/退出时提供故障转移方法,但我运气不佳。我将发布我如何创建我的 NSQ 生产者:

type ProducerNSQ struct {
p *nsq.Producer
}

func initConnectionNSQ() (*ProducerNSQ, error) {
config := nsq.NewConfig()
config.UserAgent = common.DeployedService()
config.BackoffMultiplier = time.Duration(time.Second * 10)

producer, err := nsq.NewProducer(dataConfig.NsqAddress, config)
if err != nil {
return nil, err
}
if err := producer.Ping(); err != nil {
return nil, err
}
return &ProducerNSQ{p: producer}, nil
}


非常感谢所有帮助!

最佳答案

在 goroutine 中创建生产者,并有一个 channel 向其发送消息以进行发布。在 goroutine 中有一个无限循环,从 channel 接收消息并尝试发送到 NSQ,如果失败重新连接并重试。

关于go - 干净关闭后尝试重新连接到 NSQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59773574/

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