升级到MQTT 5的五个原因

简介: MQTT已成为将物联网(IoT)设备连接到云的流行协议。MQTT最初开发于1999年,用于监视卫星网络上的石油和管道。当时,需要一种协议,它对于电源有限的远程设备有效,带宽使用效率高并且能够在不可靠的网络连接上运行的协议。开发MQTT时,还没有创造出IoT这个术语,也没有云计算,也没有出现各种IoT使用案例。

12.17.19-Five-Reasons-to-Upgrade-to-MQTT-5.png

MQTT已成为将物联网(IoT)设备连接到云的流行协议。MQTT最初开发于1999年,用于监视卫星网络上的石油和管道。当时,需要一种协议,它对于电源有限的远程设备有效,带宽使用效率高并且能够在不可靠的网络连接上运行的协议。开发MQTT时,还没有创造出IoT这个术语,也没有云计算,也没有出现各种IoT使用案例。

由于这些原因,需要更新MQTT协议,以解决在大型云平台上托管MQTT和处理其他物联网用例所需的某些缺少的功能。 在2015/2016年,OASIS内部开始研究新版本的规范MQTT5。在2019年3月,MQTT 5被批准为正式的OASIS标准。

在MQTT中有许多新特性,但是有5个关键特性改进部署MQTT系统的错误处理、可扩展性和灵活性。


会话和消息到期Session and Message Expiry

MQTT 5现在允许每个会话和消息指定一个时间限制。如果在设定的时间内未发送消息,则将其删除。如果消息需要在一定时间内到达,这对于安全关键型用例而言可能非常重要。


共享订阅(Shared Subscriptions)


共享订阅允许多个MQTT客户端实例共享来自MQTT代理的相同主题的订阅。如果已设置MQTT客户端以将MQTT数据流传输到后端企业系统(例如数据库)中,则此功能非常有用。可以在不同的群集节点之间部署共享相同订阅的不同MQTT客户端,以帮助实现可伸缩性和高可用性。


负面确认(Negative Acknowledgements)

现在,支持MQTT 5的MQTT代理可以发送否定确认消息,以拒绝某些类型的消息,例如最大QoS,最大消息大小以及代理中不受支持的功能。拒绝超过最大消息大小的消息对于识别可能已变为恶意的MQTT客户端很有用。


有效载荷格式指示器(Payload Format Indicators)

MQTT始终与有效负载无关,但是MQTT 5现在允许添加有效负载格式指示符,二进制值或文本。 这将使处理MQTT消息更加容易。


用户属性(User Properties)

除了有效载荷格式指示符之外,MQTT 5消息现在还可以包括用户属性,这些属性将键值属性添加到消息头中。这些属性允许将特定于应用程序的信息添加到每个消息头。


结论

MQTT社区正在逐渐包括对各种MQTT实现的MQTT 5支持,包括Eclipse Paho,Mosquitto和HiveMQ。 如果您正在考虑在下一个物联网应用程序中使用MQTT,请强烈考虑使用MQTT 5。


原文链接
相关实践学习
快速体验阿里云云消息队列RocketMQ版
本实验将带您快速体验使用云消息队列RocketMQ版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
JSON JavaScript Linux
【MCP教程系列】Node.js+TypeScript搭建NPX MCP服务并自定义部署至阿里云百炼
本文介绍如何将阿里云百炼的工作流封装成MCP服务并部署,随后引入到智能体中使用。主要步骤包括:1) 封装MCP服务;2) 发布到npm官方平台;3) 在阿里云百炼平台创建自定义MCP服务;4) 在智能体中添加自定义MCP服务。通过这些步骤,用户可以轻松将工作流转化为MCP服务,并在智能体中调用。
2792 0
|
应用服务中间件 视频直播 Linux
windows下使用Nginx搭建Rtmp流媒体服务器,实现视频直播功能
windows下使用Nginx搭建Rtmp流媒体服务器,实现视频直播功能
3700 0
windows下使用Nginx搭建Rtmp流媒体服务器,实现视频直播功能
|
消息中间件 Web App开发 JavaScript
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)(上)
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
849 0
|
9月前
|
机器学习/深度学习 人工智能 算法
MIDI-3D:单图秒变3D场景!40秒生成360度空间,多实例扩散黑科技
MIDI-3D 是一种先进的 AI 3D 场景生成技术,能够将单张图像快速转化为高保真度的 360 度 3D 场景,具有强大的全局感知能力和细节表现力,适用于游戏开发、虚拟现实、室内设计等多个领域。
350 18
MIDI-3D:单图秒变3D场景!40秒生成360度空间,多实例扩散黑科技
|
前端开发 Java 测试技术
java日常开发中如何写出优雅的好维护的代码
代码可读性太差,实际是给团队后续开发中埋坑,优化在平时,没有那个团队会说我专门给你一个月来优化之前的代码,所以在日常开发中就要多注意可读性问题,不要写出几天之后自己都看不懂的代码。
|
存储 安全 关系型数据库
Linux系统在服务器领域的应用与优势###
本文深入探讨了Linux操作系统在服务器领域的广泛应用及其显著优势。通过分析其开源性、安全性、稳定性和高效性,揭示了为何Linux成为众多企业和开发者的首选服务器操作系统。文章还列举了Linux在服务器管理、性能优化和社区支持等方面的具体优势,为读者提供了全面而深入的理解。 ###
|
边缘计算 运维 安全
服务化架构 (SBA) 在 5G 核心网中的关键作用
服务化架构 (SBA) 在 5G 核心网中的关键作用
908 1
|
弹性计算 Rust 监控
云服务器 ECS产品使用问题之如何在阿里云幻兽帕鲁服务器中添加Mod
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
Java 调度
SpringBoot中实现定时任务(Quartz)(二)
SpringBoot中实现定时任务(Quartz)
337 0
SpringBoot中实现定时任务(Quartz)(二)
|
人工智能 API 语音技术
[AI MoneyPrinterTurbo] 一键成片,超级印钞机
探索MoneyPrinterTurbo的奇妙旅程,一个文生视频工具,让您只需一键,就能体验从安装到配置,再到创建高清短视频的全过程。
[AI MoneyPrinterTurbo] 一键成片,超级印钞机