我已经在我的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
}非常感谢大家的帮助!
发布于 2020-01-17 04:18:59
在goroutine中创建生产者,并拥有一个向其发送消息以进行发布的通道。在goroutine中有一个无限循环,从通道接收消息并尝试发送到NSQ,如果NSQ失败,请重新连接并重试。
https://stackoverflow.com/questions/59773574
复制相似问题