登录
首页 >  Golang >  Go问答

完全关闭后尝试重新连接到 NSQ

来源:stackoverflow

时间:2024-04-09 12:57:27 157浏览 收藏

对于一个Golang开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《完全关闭后尝试重新连接到 NSQ》,主要介绍了,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

问题内容

我已经在 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 中创建生产者,并有一个通道向其发送消息以进行发布。 Goroutine 中存在死循环,从通道接收消息并尝试发送到 NSQ,如果失败则重新连接并重试。

好了,本文到此结束,带大家了解了《完全关闭后尝试重新连接到 NSQ》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>