1. NATS 之 Queueing(队列)模式验证
主要以下讲的都是基于 NATS 服务已经开启了(没有开启的请运行:gnatsd 启动);还有请注意所有运行的 go 文件都是在 $GOPATH/src/github.com/nats-io/go-nats/examples/ 下
1. 启动注册一个队列q,需要申明 主题 和 名称
$ go run nats-qsub.go foo my-queue
2. 运行一个客户端c,需要注册上一个队列注册的主题,用于从队列中实时读取数据
$ go run nats-sub.go foo
3. 运行一个发送消息端p,也需要注册队列注册的主题,用于向队列写入数据
$ go run nats-pub.go foo "hello world" $ go run nats-pub.go foo "hello NATS" $ go run nats-pub.go foo "hello NATS again"
4. 消息终端展示
队列q 接收的消息输出
[#1] Received on [foo] Queue[my-queue] Pid[1248]: 'Hello world' [#2] Received on [foo] Queue[my-queue] Pid[1248]: 'Hello NATS' [#3] Received on [foo] Queue[my-queue] Pid[1248]: 'Hello NATS again'
客户端c 接收的消息输出
[#1] Received on [foo]: 'Hello world' [#2] Received on [foo]: 'Hello NATS‘ [#3] Received on [foo]: 'Hello NATS again'
2. 基本的监控
启动 NATS 服务以及激活监控端口,例如
$ gnatsd -m 8222
查证 NATS 服务启动对应的 http 端口 4222 以及监控端口 8222
[1366] 2017/04/01 17:58:21.495787 [INF] Starting nats-server version 0.9.6 [1366] 2017/04/01 17:58:21.495900 [INF] Starting http monitor on 0.0.0.0:8222 [1366] 2017/04/01 17:58:21.496043 [INF] Listening for client connections on 0.0.0.0:4222 [1366] 2017/04/01 17:58:21.496083 [INF] Server is ready
看到以上信息打印出来证明启动成功,我们可以在浏览器中输入四个个地址用来查看有关监控不同点点情况:
1. http://localhost:8222/varz 用来监控NATS整体服务情况
2. http://localhost:8222/connz 用来监控NATS-Client详情,有几个客户端就有几个详情,默认最多有1024个连接且采用分页的形式,可以通过limit 和 offset 来进行分页显示,形如:
http://localhost:8222/connz?limit=1&offset=1 (即按照分页的形式显示第一页的第一条信息)
http://localhost:8222/connz?limt=1&offset=1&subs=1 (即显示客户端第一个连接信息即subs=1的第一页的第一条信息)
http://localhost:8222/varz http://localhost:8222/connz
3. http://localhost:8222/subscriptionsz 可以查看具体的订阅者信息
4. http://localhost:8222/routez 可以查看集群中当前活跃的路由信息,它不支持分页机制,但是它支持 订阅者 序号参数,即可以这样查询:
http://localhost:8222/routez?subs=1
http://localhost:8222/subscriptionsz
http://localhost:8222/routez