首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

NATS发布订阅

NATS是一个发布订阅消息系统。订阅者通过监听主题名称来接收关于该主题的消息。如果监听主题的订阅者处于非激活状态,则不会收到发布到该主题上的消息。订阅者可以使用通配符主题“*”来匹配单个token,匹配主题的后部分。

1. 启动NATS服务器

gnatsd

服务器成功启动时,你会看到如下消息:

[1] 2015/08/12 15:18:22.301550 [INF] Starting gnatsd version 0.6.4

[1] 2015/08/12 15:18:22.301762 [INF] Listening for clientconnections on 0.0.0.0:4222

[1] 2015/08/12 15:18:22.301769 [INF] gnatsd is ready

NATS服务器会在TCP端口4222上监听客户端连接。

2. 启动shell或命令提示符会话

用该会话来运行NATS客户端订阅者程序示例。

3. cd到Go客户端示例目录

cd$GOPATH/src/github.com/nats-io/nats/examples

4. 运行客户端订阅者程序

go runnats-sub.go

其中是要监听的主题。一个有效的主题是一个字符串且在系统中唯一。

例如:

go runnats-sub.go msg.test

5. 启动另一个shell或命令提示符会话

使用该会话来运行NATS发布者客户端。

6. cd到示例目录

cd$GOPATH/src/github.com/nats-io/nats/examples

7. 发布NATS消息

go runnats-pub.go

其中是主题名称,是要发布的文本。

例如:

go runnats-pub.go msg.test hello

或:

go runnats-pub.go msg.test "NATS MESSAGE"

8. 验证消息发布和收据

你可以看到发布者发布了该消息:Published [msg.test]:’NATS MESSAGE’,以及订阅者收到了消息:[#1] Received on [msg.test]:’NATS MESSAGE’。注意,如果接收者没有获取到消息,检查发布者和订阅者是否使用相同的主题名称。

9. 发布另外一条消息

go runnats-pub.go msg.test "NATS MESSAGE 2"

你应该能看到订阅者收到消息2。

注意:消息计数是递增的,订阅客户端在该主题每接收到一条消息就会递增。

10. 启动另一个shell或命令提示符会话

用该会话运行第二个NATS订阅者。

11. cd到示例目录

cd$GOPATH/src/github.com/nats-io/nats/examples

12. 订阅消息

go runnats-sub.go msg.test

13. 通过发布者客户端发布另一条消息

go runnats-pub.go msg.test "NATS MESSAGE 3"

验证两个订阅客户端都接收到该消息。

14. 启动另一个shell或命令提示符会话

用该会话运行第三个NATS订阅者。

15. cd到示例目录

cd$GOPATH/src/github.com/nats-io/nats/examples

16. 订阅另一个主题消息

除了最后一个订阅者,所有人都收到该消息,为什么?因为该订阅者没有监听发布者所使用的消息主题。

17. 将最后一个订阅者改为使用通配符

NATS支持消息订阅者使用通配符。(不能使用通配符主题发布消息。)

修改最后订阅者监听msg.*并运行:

go runnats-sub.go msg.*

18. 发布另一条消息

这次,所有订阅客户端都会接收到该消息。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180430G0XRUU00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券