一、MQTT简介
MQTT是一种轻量级的协议,基于发布 /订阅模式的消息传输协议, MQTT 目前是物联网传输协议标准。和其他的消息队列一样(kafka、rabbitMQ、rovketMq等),只是协议比较轻,资源占用小等优点适用于物联网边缘设备的通信,数据传输。
二、NanoMQ
NanoMQ 是于 2021 年初发布的边缘计算开源项目,是面向物联网边缘计算场景的下一代轻量级高性能 MQTT 消息服务器。
2.1 功能特性
完整支持 MQTT 5.0:完整支持 MQTT 5.0/3.1.1,与所有标准 MQTT 开源 SDK 兼容。
MQTT 桥接:内置 MQTT 多云桥接功能,简单配置即可接入各类流行的云服务建立云边通道进行多地数据同步。
规则引擎:内置简单规则引擎可以灵活处理边缘数据。也可以与 eKuiper 集成在边缘进行流式数据分析。
消息持久化:针对物联网复杂网络环境场景设计数据持久化和数据缓存功能,桥接消息可以本地缓存后断网续传。重要数据可以在边缘持久化滚动更新。
丰富的集成 API:提供可拓展的事件驱动型 WebHook 接口和运维友好的 HTTP APIs,帮助减少边缘计算应用开发和集成的成本。
多协议网关:通过协议网关支持 nanomsg/ZeroMQ/Websocket 等常用的消息协议,方便在边缘建立灵活的数据路由拓扑。并提供连接加密和安全保障。
MQTT STREAM: 对于同一topic的MQTT消息,可以看做一条数据流,并且这个数据流是可以进行落盘存储以及查询操作的,对于一些网络较差的环境下,为数据的完整性和可靠性提供了解决方案.
2.2 核心优势
超轻量:MQTT 服务可以低至 200Kb 的内存占用启动。
全异步 I/O:针对物联网和 MQTT 内建 Actor 编程模型并行化计算负载。
多线程并行:优秀的可拓展性,具有良好的多核 SMP(对称多处理)支持和多线程性能。
高性能:边缘百万级消息处理能力。
跨平台:可无缝移植到任何基于 POSIX 的系统平台。
互操作性:数据透明,拓展接口丰富,易于和各类边缘计算框架集成。
三、 NanoMQ 安装部署
以下以windows部署演示
直接下载,下载完成后进行解压,再进行后面操作
官方下载链接:下载 NanoMQ
NanoMQ常用命令:配置说明 | NanoMQ 文档
3.1 官方下载
官方下载链接:下载 NanoMQ
解压完成
3.2 添加环境变量
添加环境变量,可全局使用NanoMQ命令,方便启动
3.3 启动NanoMQ服务器
打开cmd 运行以下命令即可
nanomq start --conf C:\Users\Administrator\Desktop\fsdownload\nanomq-0.21.5-windows-x86_64\config\nanomq.conf
nanomq start --conf C:\Users\Administrator\Desktop\fsdownload\nanomq-0.21.5-windows-x86_64\config\nanomq.conf
注意:后面的配置文件路径为对应的config下面的文件路径,需要修改!
3.4 模拟发布订阅进行测试
订阅者:
发布者:
四、发布、订阅认证
以上使用的是mqtt-tcp方式,默认是没有进行加密的,任何人都可以进行订阅和发布,现在进行限制,使用账号密码模式进行限制发布和订阅者
4.1 修改配置文件
打开config下面配置文件
修改2个参数,注意文件 nanomq_pwd.conf路径改为上面config下对应文件的绝对路径
4.2 修改账号文件参数
默认打开nanomq_pwd.cong 有以下两个账号,前面是账号后面是密码,可以进行添加,注意格式保持一致,通过‘:’进行分隔
4.3 重启NanoMQ即可
重新启动
nanomq start --conf C:\Users\Administrator\Desktop\fsdownload\nanomq-0.21.5-windows-x86_64\config\nanomq.conf
4.4 发布者、订阅者重新连接
不使用账号密码进行连接就链接不上来,如下
1、订阅者进行连接
nanomq_cli sub --url mqtt-tcp://localhost:1883 -u admin -P public -t nmqtest
2、发布者进行连接
nanomq_cli pub --url mqtt-tcp://localhost:1883 -t nmqtest -u admin -P public -m HelloWorld777777777
3、订阅者接收到消息
五、MQTTX图形界面客户端
上面使用的都是NanoMQ自带的cli命令行进行发布订阅,同时也有图形的工具进行MQTT发布订阅。
5.1 下载安装MQTT客户端
官方下载链接:MQTTX 下载
下载完成直接安装即可
5.2 客户端连接MQTT服务器
1、打开MQTTX,点击+号或者连接
2、名称随便,客户端ID随便。协议选择mqtt://,ip输入对应的ip地址,本地输入127.0.0.1即可,端口默认mqtt是1883,加了认证所以需要刚才的账号密码
5.3 发布者发送消息
在下方输入框输入文字消息直接发送,注意发送的主题。
订阅者受到消息
5.4 订阅者订阅消息
同时mqttx也有订阅者功能
配置对应的主题即可
发送消息同时也接收到消息
版权归原作者 一头生产的驴 所有, 如有侵权,请联系我们删除。