【译】从MQTT 3.1.1升级到它的七个理由

154 阅读7分钟

原文:www.hivemq.com/blog/mqtt5-…

作者: Ian Skerrett and Florian Raschbichler
发布于: 2019年10月7日
创建于: 2023年6月29日

IoT在过去十年中发展迅速,对于IoT设备来讲,MQTT由于无缝且高效通信的事实而成为IoT首选协议。随着IoT系统的规模和复杂性的增长,MQTT协议也在不断发展,以满足这些需求。从这个角度来看,MQTT 5的升级为满足现代IoT应用程序不断扩大的需求提供了重大改进。

在这个MQTT 5基本系列的第2部分(【译】对比MQTT 5 与 MQTT 3)中,我们深入研究了MQTT 5的变化部分。本篇中,我们将探讨为什么你的组织或开发团队应该考虑从 MQTT 3.1.1升级到 MQTT 5。 MQTT

为什么从MQTT 3升级到MQTT 5?

MQTT 5对于MQTT协议来讲,确实有了很大的提升,它是从MQTT用户需求角度来进行开发的。它集成了当代互联网基本特性,为基于云部署而量身开发。这些进步提高了处理重要消息传递的可伸缩性和可靠的错误管理,并促进了MQTT消息与现有计算框架的直接集成。

本篇文章中,我们会提出七个原因,让你的组织或开发团队应该考虑升级到MQTT 5,其中包括:

  1. 为更多的健壮系统提供更好的错误处理
  2. 提高云计算的可伸缩性
  3. 更大的灵活性,更容易的集成
  4. 专业IoT标准的崛起
  5. 未来适用性
  6. 易迁移
  7. 改进的特性包含如下:
    1. 负反馈(NACK)
    2. 高效的别名
    3. 自定义用户属性
    4. payload 格式标识

下边是MQTT 5为何比MQTT 3好的基本依据。

1. MQTT 5在错误处理方面如何优于MQTT 3

MQTT 5明显的提升了错误处理机制,有助于提高系统的健壮性和可靠性。引人注目是会话和消息到期特性。这允许开发人员为每个消息和会话设置一个确定的时间限制。如果消息没有在这个时间范围内发送,它将被自动删除。这个特性在确保网络延迟或中断不会导致向IoT设备发送过时或不相关的命令方面特别有用。

2. MQTT 5如何比MQTT 3提供更好的可伸缩性

在物联网不断发展的现代世界中,可伸缩性是一个至关重要的要求。MQTT 5通过标准化共享订阅解决了这个问题。这允许多个MQTT 客户端实例在代理服务器上共享相同的订阅。对于部署在云集群上的负载平衡 MQTT 客户端来说,这是一个强大的特性。这种可伸缩性使得MQTT 5成为拥有大型部署的企业和那些计划扩展IoT系统的企业的强大选择。

3. MQTT5如何比MQTT 3有更大的灵活性和更容易的集成性

MQTT 5将自定义提升到了一个新的层次,它引入了用户属性(User Properties) ,这个特性允许将键值属性添加到MQTT消息的头部。这种能力意味着可以将特定于应用程序的信息直接合并到每个消息中,从而增强对这些消息的处理。例如,一个包含发送客户端的唯一标识符或设备平台的固件版本的元标记可以添加到消息头中,方便接收方进行分析和处理。

MQTT 5将自定义提升到了一个新的层次,它引入了用户属性(User Properties) ,这个特性允许将键值属性添加到MQTT消息的头部。这种能力意味着可以将特定于应用程序的信息直接合并到每个消息中,从而增强对这些消息的处理。例如,一个包含发送客户端的唯一标识符或设备平台的固件版本的元标记可以添加到消息头中,方便接收方进行分析和处理。

此外,MQTT 5通过合并有payload格式指示器简化了接收方的过程。现在可以更容易地区分二进制数据和文本数据,因为MQTT 5包含一个自定义风格的内容类型描述符。这个特性在过多的场景中提供了巨大的价值。例如,考虑一个收费公路控制系统,该系统传输用于图像识别处理的车牌图像。相反,其他消息可能需要不同的处理方式,比如包含位置坐标的消息。通过指定格式,MQTT 5确保对不同数据类型进行有效和适当的处理。

4. 作为IoT标准,MQTT 5 是如何比MQTT 3更好的

凭借其丰富的特性集,MQTT 5巩固了其作为不同IoT场景首选的地位,成功地解决了以前版本的局限性。我们预计在未来几年内,MQTT 在各个行业的应用将呈指数级增长,这暗示着 MQTT 作为通用物联网标准的地位即将到来。

5. MQTT 5应用程序如何在未来优于MQTT 3的应用程序

通过解决MQTT 3的局限性,MQTT 5为IoT应用的未来增强铺平了道路。它的灵活和健壮的特性使它能够适应即将到来的技术趋势,确保您的物联网系统保持最新并为未来的发展做好准备。

6.MQTT 5如何与其前身兼容

MQTT 5的一个实际优点是它与其前身的兼容性。它支持MQTT 3.1和 MQTT 3.1.1特性,允许MQTT 3和 MQTT 5客户端的混合。这使得迁移过程无缝衔接,使得组织能够在不破坏现有物联网操作的情况下逐渐过渡到 MQTT 5。

7. MQTT5在提供改进的特性方面如何优于MQTT3

在本小节中,我们将深入研究MQTT5的一系列增强特性。从使用消极确认增强系统的健壮性,到使用用户属性实现定制,以及使用主题别名提高效率,MQTT 5显著强调了可用性、灵活性和性能。此外,还引入了payload格式指示器,以方便处理不同的数据类型。让我们详细探讨一下这些进步:

负反馈(NACK)

为了进一步增强系统的健壮性,MQTT 5采用了负确认的概念。代理服务器可以在预定义的条件或限制下拒绝特定的消息,如超过最大消息大小、最大服务质量(QoS)或使用不受支持的特性。这种主动措防范措施对MQTT客户端的开始发送错误或恶意消息,可显著提高整个系统的安全性。

高效的别名

在具有复杂主题结构的大型系统中,主题字符串可能变长,从而增加网络和处理负载。MQTT 5引入了主题别名,可以用整数值替换这些长主题字符串。这可以大大减少对网络的需求和处理开销,从而提高系统效率和性能。

自定义用户属性

MQTT 5通过引入用户属性在自定义方面更进了一步。这些允许开发人员将键值属性添加到MQTT消息的头中。这种自定义使您能够在每条消息中包含特的信息。这些数据可以用来丰富消息处理和集成,给开发人员更多的灵活性和对应用程序的控制。

payload 格式标识

由于IoT应用程序中的数据类型多种多样,因此建立一种简化数据处理和处理的机制至关重要。MQTT 5通过payload格式指示器满足这一需求。这些指示器标识payload是二进制的还是文本的,并包含自定义样式的内容类型。这有助于提高数据处理效率,使系统能够更好地适应各种数据用例。

总结: MQTT 5 - IoT通信的游戏改变着

MQTT 5代表了IoT通信领域的一大进步。它不仅仅是一个小小的升级; 它是一个转换,能够巧妙地解决以前的缺点,并且具有健壮的特性。它是现代IoT应用不可或缺的工具。MQTT 5不仅仅是一个好的选择,它还是您的IoT应用程序的一个引人注目的选择,随时准备推动您进入物联网的未来。