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. 发布另一条消息
这次,所有订阅客户端都会接收到该消息。
领取专属 10元无门槛券
私享最新 技术干货