虹科干货 | MQTT 5协议你知道多少?
一、MQTT 5简介
MQTT协议是当今世界上最流行、接受度最高的物联网协议。自推出以来,MQTT已经成功地连接了各种规模的部署中的无数受限设备。
流行的用例包括从连接汽车、制造系统、物流和军事到企业聊天应用程序和移动应用程序。MQTT协议的广泛使用催生了进一步发展MQTT规范的高要求。在此背景下,MQTT v5应运而生。
二、MQTT发展历程
在20世纪90年代末,Andy Stanford-Clark(IBM)和Arlen Nipper(Cirrus Link)发明了MQTT,用于通过卫星网络监测石油和天然气管道。他们设计的MQTT协议是开放的、简单的、容易实现的。
MQTT是一个极其轻量级的协议,在保证可靠传递的前提下,最大限度地减少了网络带宽和设备资源需求。这个设计允许从一台服务器上支持成千上万的小型设备。这些特点使得MQTT非常适合在处理能力有限、内存容量小、延迟高的受限环境和低带宽网络中使用,如物联网(IoT)。
三、MQTT 发展时间线
虽然MQTT协议是在1999年发明的,但它的迅速崛起是在几年之后。开源与开放标准的结合是一个成功的组合,MQTT社区迅速发展。在MQTT 3.1.1作为OASIS和ISO标准发布5年后,MQTT 5也随之而来。2019年3月,MQTT 5作为新批准的OASIS和ISO标准取代了MQTT3.1.1的位置。
四、MQTT 5 设计目标
负责规范和标准化 MQTT 的 OASIS 技术委员会 面临着复杂的平衡行为:
- 在不增加开销或降低易用性的情况下,增加长期用户需要的功能;
- 在不增加不必要的复杂性的情况下提高性能和可扩展性。
技术委员会为MQTT 5规范确定了以下功能目标:
- 增强可扩展性和大规模系统的功能
- 改进错误报告
- 正式确定通用模式,包括能力发现和请求响应
- 包括用户属性在内的可扩展性机制
- 性能改进和对小型客户端的支持
基于这些目标和现有 MQTT 部署的需求,技术委员会指定了几个非常有用的新功能。像虹科HiveMQ MQTT Broker企业版这样的复杂MQTT代理已经为消息和客户端会话实现了共享订阅和生存时间等功能。随着MQTT 5的发布,这些热门的功能成为官方标准的一部分。
增强可扩展性和大规模系统是新规范的关键目标之一。MQTT 3.1.1证明了MQTT是一个独特的、可扩展、有状态的物联网协议。虹科HiveMQ MQTT Broker企业版在云基础设施上为一个MQTT代理集群实现了1000万个MQTT同时连接的基准测试。MQTT 5的设计旨在使MQTT代理更容易扩展到巨大数量的并发连接的客户端。
五、为什么没有MQTT 4?
你可能会好奇,为什么MQTT 3.1.1的后续版本是MQTT 5?
答案很简单,这是因为MQTT协议在CONNECT数据包中定义了一个固定的报头,这个头包含了一个协议版本的单字节值。
如果你检查一下网络上的几个CONNECT数据包,你会注意到一些有趣的事情。MQTT 3.1的协议版本值为 “3”,MQTT 3.1.1的协议版本值为 “4”。为了使线上的协议版本值与官方协议版本名称同步,新的MQTT版本在协议名称和值上都使用 “5”。
六、关于虹科 HiveMQ
虹科HiveMQ 是一个基于 MQTT 数据传输的通信平台,旨在将数据快速、高效、可靠地传递给连接的物联网设备,HiveMQ 使用 MQTT 协议在设备和企业平台之间进行实时、双向的数据推送。
虹科HiveMQ 的建立是为了解决企业在构建新的物联网应用时面临的一些关键技术挑战,包括:
- 构建可靠、可扩展的关键业务物联网应用
- 快速的数据交付,以满足终端用户对响应式物联网产品的期望
- 通过有效利用硬件、网络和云资源降低运营成本
- 将物联网数据整合到现有的企业系统中
虹科HiveMQ 提供免费版、专业版、企业版 MQTT Broker 产品,并提供 Kafka、企业安全及 MQTT Broker 桥接三种企业级扩展套件,HiveMQ 还提供高效的 MQTT 客户端及云平台,多方位满足用户需求。