天道酬勤,学无止境

mqttv5

将你的MQTT集群封装成helm chart

将你的MQTT集群封装成helm chart 背景 MQTT已然成为物联网的基础架构,在智慧园区、智慧城市、智慧楼宇、智慧交通等领域起着重要的作用,大规模的应用也暴露出了MQTTv3.1.1的一些缺陷,诸如session不会过期,只能等待客户端连接时设置clean session,如果客户端最后离线后,未进行上述操作,那么他的session将会保留在服务端;还有服务端主动断开客户端连接时,不能告知客户端原因,这时客户端无法知悉具体的断开原因,从而无法针对不同的事件进行有差别的处理;再有服务端不限制客户端发布的Qos1、2的数量,这时某个客户端可以发送大量的Qos1、2的消息来使得服务端的内存暴增。类似的缺陷和限制使得人们将目光转向新版本的MQTT协议,即MQTT5.0。 MQTT5.0协议发布以来,已经有非常多的实现。然而他们中的大多数都未提供面向k8s的部署方式,这使得在云原生环境下人们不得不自己来封装所使用的MQTT broker。本文旨在帮助读者以更快的速度来构建他们自己的MQTT集群。 k8s环境 在开始我们的实验之前,我们需要一个k8s,如果您还没有使用过k8s,我推荐您使用各个云服务提供商提供的在线k8s服务,如果您希望在本地进行调试,我推荐您使用kubesphere来一键安装。下面我们假设您的k8s已经搭建完成。 gmqtt 和 SailMQ

2021-05-13 16:34:17    分类:博客    mqtt   mqtt5   mqttv5

基于MQTTv5的智慧园区消息总线系统设计与实现

背景 经过多年的发展,智慧园区已经初见规模,目前基本形成了以MQTT v3.1.1为基础,综合应用modbus、BACnet、RTSP、RTMP等技术的智慧园区整体解决方案,为智慧园区提供了底层的技术支持。 随着MQTTv5协议的发布,基于MQTTv5的服务端和客户端实现在近一两年的时间里逐渐走向成熟,而MQTTv5解决了MQTTv3.1.1存在的一些问题,尤其是在服务端需要主动断开连接的场景下。同时MQTTv5带来了大量的新特性,诸如共享订阅、主题别名、认证方法等。 MQTT v5服务端实现 为此,我们设计并实现了海舟智慧园区消息总线系统SailMQ。 海舟智慧园区消息总线系统,是一个MQTT服务端的实现,基于gmqtt提供的全面的MQTT v3.1.1和MQTT v5支持,为用户提供面向未来的智慧园区基础设施。 海舟智慧园区消息总线系统包含以下子系统: 海舟智慧园区管理系统SailUI 海舟智慧园区消息总线系统SailMQ 这两个子系统相辅相成,缺一不可。 设计模型与术语 设备(Device)与 设备管理员(Device Manager) 各种物联网智能终端设备与用于与旧式系统交互的工控机等被统一称为设备,是用户管理的基本单位,设备归属于某个特定的设备管理员,一个设备管理员可以管辖多个设备。 App 与 App管理员(App Manager) 用于展示、控制

2021-05-12 17:32:58    分类:博客    mqtt   mqtt5   mqttv5