01

介绍

nsqdnsqlookupdnsqadminnsqdnsqlookupdnsqadminnsqd

NSQ 支持跨平台和多语言客户端。使用 Mac 的读者朋友们可以使用 brew 方便的安装 NSQ。本文我们主要介绍 NSQ 官方提供的 golang 客户端 go-nsq。关于 NSQ 的更多内容,感兴趣的读者朋友们可以查阅官方文档,限于篇幅,本文不再赘述。

go-nsqgo-nsq

安装方式:

02

生产者

go-nsq 包中的 Producer 类型,用于向 NSQ 发送消息。首先,需要调用函数 NewProducer 创建一个 Producer 实例,接收参数是 string 类型的 addr 和指针类型的 nsq.Config(NSQ 配置信息),返回结果是一个 Producer 实例的地址和 error。

需要注意的是,必须调用函数 NewConfig 返回一个指针类型的 nsq.Config,它包含默认配置信息。可以通过调用该实例的 Set 方法设置配置信息,并且必须在用于传参之前设置,否则设置的配置信息将不会生效。

nsqdnsqd

示例代码:

运行结果:

03

消费者

go-nsq 包中的 Consumer 类型,用于从 NSQ 消费消息。首先,需要调用函数 NewConsumer 创建一个 Consumer 实例,接收参数是 string 类型的 topic 和 channel,指针类型的 nsq.Config(NSQ 配置信息),返回结果是一个 Consumer 实例的地址和 error。

需要注意的是,必须调用函数 NewConfig 返回一个指针类型的 nsq.Config,它包含默认配置信息。可以通过调用该实例的 Set 方法设置配置信息,并且必须在用于传参之前设置,否则设置的配置信息将不会生效。

nsqd

示例代码:

运行结果:

04

总结

本文主要介绍 Golang 语言编写的实时分布式消息平台 NSQ 的 golang 客户端 go-nsq。它是 NSQ 官方提供的 NSQ Golang 客户端。并且分别介绍了 Producer 和 Consumer 的简单使用方法,大家可以根据自己的业务需求,使用 go-nsq 灵活运用 NSQ。关于 go-nsq 的更多内容,感兴趣的读者朋友们可以阅读官方文档。

推荐阅读:

参考资料: https://nsq.io/overview/design.html https://pkg.go.dev/github.com/nsqio/go-nsq@v1.0.8