天天看点

升级到MQTT 5的五个原因

升级到MQTT 5的五个原因

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。

原文链接