golang 操作nsq
product
此代码是使用 go-nsq 库将消息发布到 NSQ 主题的基本示例。让我们浏览一下代码的每个部分:
goCopy code
package main
import (
"fmt"
"log"
"time"
"github.com/nsqio/go-nsq"
)
此代码定义包名称,导入必要的库和包。
goCopy code
func main() {
config := nsq.NewConfig()
p, err := nsq.NewProducer("127.0.0.1:4150", config)
if err != nil {
log.Panic(err)
}
该函数创建新的 NSQ 创建器和配置对象。该函数创建一个新的生产者,该生产者可以将消息发布到 NSQ 主题。在这种情况下,创建者连接到在 上运行的 NSQD 实例。main()``NewProducer()``127.0.0.1:4150
goCopy code
for i := 0; i < 1000; i++ {
msg := fmt.Sprintf("num-%d", i)
log.Println("Pub:" + msg)
err = p.Publish("testTopic", []byte(msg))
if err != nil {
log.Panic(err)
}
time.Sleep(time.Second * 1)
}
该代码使用生产者的方法将 1000 条消息发布到称为的 NSQ 主题。每条消息都是一个字符串,该字符串是使用 生成的,格式为 .消息正文使用 转换为字节片。创建者使用 将每条消息记录到控制台。发布每条消息后,代码使用 等待 1 秒。testTopic``Publish()``fmt.Sprintf()``num-i``[]byte(msg)``log.Println()``time.Sleep()
goCopy code
p.Stop()
}
最后,代码使用 停止生成器 。这对于确保在程序退出之前发送所有消息非常重要。p.Stop()
总体而言,此代码演示了如何创建 NSQ 生产者并将消息发布到 NSQ 主题。可以将创建器配置为连接到 NSQD 实例或 NSQLookupd 实例以进行服务发现。