MQTT 协议简介 - MQTT 要点:第 1 部分
- HiveMQ 4 现在支持 MQTT 5 规范。我们强烈建议客户现在使用 MQTT 5 。它引入了一些关键功能,使基于 MQTT 的系统更加健壮,更容易集成到现有的企业系统中。
MQTT 要点:为什么、什么和什么不:
在我们深入探讨今天的话题之前,让我解释一下我们为什么要做这个系列,目标受众是谁,以及我们将在未来几天介绍什么。
首先,我们将探讨MQTT的基本概念(发布/订阅,客户端/代理)和基本功能(连接,发布,订阅)。然后,我们将查看功能: 服务质量 , 保留的消息 , 持久会话 , 最后遗嘱和遗嘱 , 保持活动状态等等 .(First, we’ll explore the basic concepts (publish/subscribe, client/broker) and basic functionality (Connect, Publish, Subscribe) of MQTT. Then, we’ll look at the features: Quality of Service, Retained Messages, Persistent Session, Last Will and Testament, Keep Alive and more.)
在基本功能系列中找不到的是安全信息。安全性是 MQTT 中的一个大话题。事实上,这是一个如此重要的主题,以至于我们开发了一个关于 MQTT 和安全性的完全独立的系列来遵循这个系列。
MQTT 简介
MQTT 是一种客户端服务器发布/订阅消息传输协议。它重量轻,开放,简单,设计易于实现。这些特性使其成为许多情况的理想选择,包括受限环境,例如机器对机器(M2M)和物联网(IoT)环境中的通信,在这些环境中需要少量代码占用和/或网络带宽非常宝贵。
一点点历史
MQTT协议由Andy Stanford-Clark(IBM)和Arlen Nipper(Arcom,现为Cirrus Link)于1999年发明。他们需要一种协议,以实现最小的电池损耗和最小的带宽,以便通过卫星与石油管道连接。两位发明人为未来的协议规定了几个要求:
- 实施简单
- 服务质量数据交付
- 轻量级和带宽效率高
- 数据不可知
- 持续会话感知
这些目标仍然是 MQTT 的核心。然而,该协议的主要重点已从专有嵌入式系统转变为开放的物联网(IoT)用例。这种焦点的转变对首字母缩略词MQTT代表什么造成了很多困惑。简短的回答是MQTT不再被视为首字母缩略词。MQTT 只是协议的名称。
更长的答案是,前一个首字母缩略词代表 MQ 遥测传输。
“MQ”是指 MQ 系列,IBM 为支持 MQ 遥测传输而开发的产品。当Andy和Arlen在1999年创建他们的协议时,他们以IBM产品命名。许多来源错误地将 MQTT 标记为消息队列协议。这根本不是真的。MQTT 不是传统的消息队列解决方案(尽管在某些情况下可以对消息进行排队,我们将在下一篇文章中详细讨论这一事实)。在接下来的十年里,IBM在内部使用该协议,直到他们在2010年将MQTT 3.1作为免版税版本发布。从那时起,欢迎大家实施和使用协议。
OASIS标准和当前版本
在首次发布大约 3 年后,宣布 MQTT 将在 OASIS 的翼下实现标准化,OASIS 是一个旨在推进标准的开放组织。AMQP、SAML 和 DocBook 只是之前发布的 OASIS 标准中的一小部分。标准化过程花了大约 1 年时间。2014年10月29日,MQTT成为官方批准的OASIS标准。次要版本从 3.1 更改为 3.1.1 表明对以前的版本进行了很少的更改。
2019 年 3 月,OASIS 批准了新的 MQTT 5 规范。这个新的 MQTT 版本为 MQTT 引入了部署在云平台上的物联网应用程序所需的新功能,以及那些需要更高可靠性和错误处理才能实现任务关键型消息传递的功能。
强烈建议使用 MQTT 5。