golang 操作nsq

112 阅读1分钟

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 实例以进行服务发现。