栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

2018-11-06-mqtt-mosquitto系列02之主题和系统主题

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2018-11-06-mqtt-mosquitto系列02之主题和系统主题

mosquitto

mosquitto是订阅发布类型的服务器,不同客户端可以往特定主题上发送消息,然后订阅该主题的所有客户端将收到该消息,为此我们需要了解一些mosquitto主题的相关知识。

基本订阅

如下就是最基本的订阅主题例子,例子中客户端订阅了主题device001:

# mosquitto_sub -t "device001"

如下是发布一条消息"hello zhang san"到主题device001,所有订阅主题device001的客户端将收到该消息。(当然消息不是直接从一个客户端直接传递到另一个客户端,而是经过mosquitto服务器,mosquitto服务端接收到客户端的发布到主题device001的消息,复制消息副本发送给所有订阅主题device001的客户端)。

# mosquitto_pub -t "device001" -m "hello zhang san"
分层

主题存在分层概念(可以理解为文件/文件夹路径一样,有层级),如下:

# mosquitto_sub -t "wecon/vbox/device001"
通配符

有时候我们需要大批量订阅某些主题,总不能傻傻的一个个订阅,为了客户端能够订阅指定的一些主题,mosquitto支持两种通配符

(+)通配一层(#)通配所有

需要注意一下几点

后面讲到的系统主题,$SYS 不会被 #匹配到,如果想要观察整个$SYS,使用 $SYS/#通配符只能单独使用,因此订阅a/b+/c不能有效地使用通配符,单独使用即占单独的一层,就是两个反斜杠的中间或者末尾,如下

a/b+/c          不能通配,错误
a/+/c/d         通配订阅, a/任意主题/c/d
a/+/c/+         通配订阅,a/任意主题/c/d
a/b/c/+         通配订阅
a/b/c/d         普通订阅
a/whatever/c/d  普通订阅

# 通配符只能用作订阅的最后一个字符,表示通配后面所有。

如 a/# 可以通配
a/b/c/d
a/whatever
例子

订阅所有的话题

# mosquitto_sub -h test.mosquitto.org -t "#"

订阅所有的$SYS主题

# mosquitto_sub -t "$SYS/broker/#"

订阅所有以’lxy/'开头的话题

# mosquitto_sub -h test.mosquitto.org -t "lxy/#"
helloA
helloC
helloWhatever

发送消息,可以看到,上面收到了哪些。

# mosquitto_pub -h test.mosquitto.org -t "lxy/A" -m "helloA"  
# mosquitto_pub -h test.mosquitto.org -t "lxyB" -m "helloB"  
# mosquitto_pub -h test.mosquitto.org -t "lxy/CCCCC" -m "helloC" 
# mosquitto_pub -h test.mosquitto.org -t "lxy/whatever" -m "helloWhatever"
系统主题

这里需要特别介绍的是系统主题,对于MQTT管理员来说,可以通过系统主题检查当前MQTT服务器的一些状态情况。

关于转义

在linux系统中,$SYS/... 会被认为是环境变量,所以需要加一个反斜杠来转义 ,例:$SYS/...

bytes $SYS/broker/bytes/received 启动后接收的字节数

查看自启动后,mosquitto收到的总字节数

# mosquitto_sub -h test.mosquitto.org -t "$SYS/broker/bytes/received"
216753582
216885620
217015805
$SYS/broker/bytes/sent 启动后的发送字节数 clients 关于客户端的一些信息 $SYS/broker/clients/connected 当前连接数 $SYS/broker/clients/disconnected 当前断开连接数 $SYS/broker/clients/expired 超时移除用户数

根据persistent_client_expiration 设置的超时时间被移除的用户

$SYS/broker/clients/maximum 历史上同时连接过最大数客户端数量 $SYS/broker/clients/total 所有活跃或者不活跃的用户 $SYS/broker/connection/# 堆空间 $SYS/broker/heap/current size 当前使用的堆空间

mosquitto使用的堆空间,注意该项是根据编译时选项决定,所以可能不可用

$SYS/broker/heap/maximum size 最大使用的堆空间

同上

负载相关 $SYS/broker/load/connections/+ 每分钟收到的包数

不同时间间隔计算出来的每分钟收到的包数,1分钟,5分钟和15分钟。

# mosquitto_sub -h test.mosquitto.org -t "$SYS/broker/load/connections/+"
1689.45 // 分别代表1分钟收到的包数
1700.82 // 5分钟收到的包数/5
1716.97 // 15分钟收到的包数/15
$SYS/broker/load/bytes/received/+ 每分钟收到的byte数

也是以1,5,15分钟作为时间间隔

# mosquitto_sub -h test.mosquitto.org -t "$SYS/broker/load/bytes/received/+"
704272.68
704121.33
708344.36
$SYS/broker/load/bytes/sent/+ 每分钟发送的字节数

同上

$SYS/broker/load/messages/received/+ 每分钟的接收 MQTT消息数量
# mosquitto_sub -h test.mosquitto.org -t "$SYS/broker/load/messages/received/+"
10797.11
10786.62
10831.87
$SYS/broker/load/messages/sent/+ 每分钟的发送 MQTT消息数量

同上

$SYS/broker/load/publish/received/+ 每分钟收到的发布消息 $SYS/broker/load/publish/sent/+ 每分钟发送的发布消息
# mosquitto_sub -h test.mosquitto.org -t "$SYS/broker/load/publish/received/+"
3364.83
3273.47
3274.06
$SYS/broker/load/sockets/+ 连接的socket数量
# mosquitto_sub -h test.mosquitto.org -t "$SYS/broker/load/sockets/+"
1973.11
1973.11
1979.76
message 消息相关 $SYS/broker/messages/inflight

QoS>0并且在等待确认的消息数量

$SYS/broker/messages/received 启动后发送的消息数量 $SYS/broker/messages/sent 启动后收到的消息数量 $SYS/broker/publish/messages/dropped 丢弃的消息数

因为 inflight/queuing limits而抛弃的消息数量

inflight : 等待中

queuing limits:队列上限

查看配置文件中 max_inflight_message 和 max_queued_messages两项

$SYS/broker/publish/messages/received 接收的publish消息数量 $SYS/broker/publish/messages/sent 发送的publish消息数量 $SYS/broker/retained messages/count 保留的消息数量 $SYS/broker/store/messages/count 当前存储的消息的数量

包括: 保留的消息和消息队列中排队的消息

其它 $SYS/broker/subscriptions/count 活跃的订阅者数量 $SYS/broker/version 查看版本
root@ubuntu:~# mosquitto_sub -h test.mosquitto.org -t "$SYS/broker/version"
mosquitto version 1.5.3
推荐的软件

这里推荐一款软件 MQTT Explorer,不错,可以方便的来订阅主题,搜一下就有。

参考

系统主题mosquitto命令

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/748442.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号