例子
首先就是一个生产者消费者的模式,自己创建的消费者只要有HandleMessage方法就可以
代码语言:javascript复制package main
import (
"fmt"
"time"
"github.com/nsqio/go-nsq"
)
// nsq发布消息
func Producer() {
p, err := nsq.NewProducer("127.0.0.1:4150", nsq.NewConfig()) // 新建生产者
if err != nil {
panic(err)
}
if err := p.Publish("test", []byte("hello NSQ!!!")); err != nil { // 发布消息
panic(err)
}
}
// nsq订阅消息
type ConsumerT struct{}
func (*ConsumerT) HandleMessage(msg *nsq.Message) error {
fmt.Println(string(msg.Body))
return nil
}
func Consumer() {
c, err := nsq.NewConsumer("test", "test-channel", nsq.NewConfig()) // 新建一个消费者
if err != nil {
panic(err)
}
c.AddHandler(&ConsumerT{}) // 添加消息处理
if err := c.ConnectToNSQD("127.0.0.1:4150"); err != nil { // 建立连接
panic(err)
}
}
// 主函数
func main() {
Producer()
Consumer()
time.Sleep(time.Second * 3)
}
// 运行将会打印: hello NSQ!!!
nsq admin
参数说明
nsq admin 中显示的那些参数,可以在这里进行查看 http://nsq.io/components/nsqadmin.html#metrics
##参考
go-nsq使用简述 - ~逍遥~ - 博客园