最火的物联网技术MQTT,其服务质量QoS的三个级别分别是什么意思,本文一定对您有帮助!

简介: MQTT是在 TCP/IP 之上使用的轻量级发布-订阅协议,常用于物联网的场景,MQTT 使用消息代理在发布消息的发送者和对这些消息感兴趣的接收者之间分派消息,同一个客户端可以发布和订阅消息。

MQTT是在 TCP/IP 之上使用的轻量级发布-订阅协议,常用于物联网的场景,MQTT 使用消息代理在发布消息的发送者和对这些消息感兴趣的接收者之间分派消息,同一个客户端可以发布和订阅消息。

MQTT 定义了三个级别的服务质量,也就是QoS,这三种级别分别代表什么意思,估计很多使用MQTT的小伙伴没太关注,有时候你遇到问题了,特别是那种诡异的问题,更不会朝这个上面想,今天瑞哥就带大家详细的了解一下MQTT的QoS,让我们直接开始!

MQTT的消息传输过程

在展开QoS前,我们有必要知道MQTT的消息传输过程。

MQTT分别三种角色:

  • Publisher:消息的发布者
  • Broker:消息的中转地,也被称为经纪人
  • Subscriber:消息的订阅者

从三种角色的描述中,大家也不难发现,消息的传递过程大体是这样:

  • Publisher产生消息并将消息传递到Broker;
  • Broker将消息传输给不同的Subscriber;
  • Subscriber再订阅响应的消息。

值得注意的是发布和订阅还有一个概念叫做Topic,也就是主题,这个又是个啥?

在上面描述中,大家不知道有没有疑问,发布者将消息发给Broker,Broker又向外分发,Broker知道怎么发吗?无脑的群发吗?订阅者也无脑的接收所有的消息吗?

如果真的是这样,那不乱套了!

所以Topic就来拯救了!

如果你不知道怎么理解主题,那你就把主题看作是一个通道或者你就把其中一个主题看成我的公众号【网络技术联盟站】,在看文章的你,微信中关注的公众号肯定是有限的,你作为订阅者,我是作者,所以相当于是消息的发布者,而微信服务器相当于是Broker,我觉得这个概念你是理解的吧?

那么想象一下,你是不是订阅了所有的公众号?或者说每个公众号发布的消息你都能看到?再或者说微信服务器有没有将所有的公众号消息都推给你?

这一切的一切,答案是不是都是:“否”?

那么首先要明确的是微信公众号的推送方式就类似于“发布-订阅”的模式,那么主题怎么理解呢?

你可以就理解为我的公众号【网络技术联盟站】,只是在微信的领域,主题可能是【科技/信息技术/网络技术联盟站】。

在MQTT中主题也是通过“/”去连接的,它是消息的通道,消息的发布者会朝某个主题中发布消息,订阅这个主题的订阅者都能收到这个消息。

以上就是MQTT消息传输过程的简单解释,下面我们介绍一下MQTT的QoS。

什么是服务质量 (QoS)?

服务质量(QoS) 级别是消息发送者和消息接收者之间的协议,它定义了特定消息的传递保证。

MQTT 中有 3 个 QoS 级别:

  • QoS 0
  • QoS 1
  • QoS 2

有人对特定消息的传递保证这个短句不太理解,什么叫做传递保证

我举个例子哈,比如你去某某公司找个人,到这家公司后你肯定首先见到的是前台工作人员,这个时候你跟前台人员说话,你说“美女,你好,我找你们公司王工,请帮我喊一下!”

这个时候,可能公司太忙,美女前台没有听到你的消息,你就在那一直问,或者你就问一次,也不管结果了。

还有一种情况就是,前台听到了,她去找你要找的王工,可能王工去开会了,没在工位,这个时候前台也有两种情况,一种就是来回来回找,知道找到,一种就是找过一次,不管找没找到也不找了。

那么理解上面的话,我再讲QoS,你就很好理解了。

MQTT中的QoS

在 MQTT 中谈 QoS 时,需要考虑消息传递的两个方面:

  • 消息从发布客户端(Publisher)传递到代理(Broker)。
  • 从代理(Broker)到订阅客户端(Subscriber)的消息传递。

我们将分别查看消息传递的两个方面,因为两者之间存在细微差别。将消息发布到代理的客户端()在向代理(前台)发送消息时定义了消息的 QoS 级别(重复喊的次数),代理使用每个订阅客户端在订阅过程中定义的 QoS 级别将此消息传输到订阅客户端,这个时候,如果订阅客户端定义的 QoS 低于发布客户端,则代理会以较低的服务质量发送消息。

最后一句话怎么理解,比如你向前台喊一次,正常情况下,前台会帮你去王工工位上喊一次,或者不喊,这个理解吧,这个是不是就是【代理会以较低的服务质量发送消息】的理解,或者你向前台喊两次,前台可以帮你喊一次、喊两次(最多)、甚至不喊。

如果你能理解以上我举的例子,下面你再去了解各个级别的QoS会非常好理解!

此处是不是先给文章点个赞,老铁!

QoS 0

最多一次

QoS 0 是尽最大努力传递,不保证消息的传递。当 MQTT 客户端以 QoS 1 发布时,MQTT 代理不确认收到,并且消息不被发送者存储和重新发送,QoS 0 通常被称为“即发即弃”,提供与底层 TCP 协议相同的保证。

QoS 1

至少一次

QoS 1 保证一条消息至少一次传递给接收方,MQTT 代理将使用 PUBACK 确认消息。MQTT 客户端将存储消息,直到它收到来自代理的 PUBACK,MQTT 客户端可能会多次传递消息,直到收到代理的确认。

发送方使用每个数据包中的数据包标识符将 PUBLISH 数据包与相应的 PUBACK 数据包匹配,如果发送方在合理的时间内没有收到 PUBACK 数据包,则发送方重新发送 PUBLISH 数据包。

QoS 2

仅一次

QoS 2 是 MQTT 中最高级别的服务,此级别保证每条消息仅由预期的收件人接收一次,QoS 2 是最安全最慢的服务质量级别,该保证由发送方和接收方之间的至少两个请求/响应流(四次握手)提供,发送方和接收方使用原始 PUBLISH 消息的数据包标识符来协调消息的传递。

当接收方从发送方获得 QoS 2 PUBLISH 数据包时,它会相应地处理发布消息,并使用确认 PUBLISH 数据包的PUBREC数据包回复发送方。如果发送方没有从接收方收到 PUBREC 数据包,它会再次发送带有重复 (DUP) 标志的 PUBLISH 数据包,直到收到确认。

总结

近年来,物联网的发展,使得MQTT协议变得越来越香,而MQTT中的服务质量也就是QoS是MQTT中比较重要的概念,当你使用的时候,发现你明明就想发送一条消息,但是日志显示你发了多条,难道你是真的发了多条吗?非也,可以好好检查一下你设置的QoS,然后不理解的话可以多看看本文,本文详细的介绍了QoS的三个级别,希望能给您带来收获!

如果您觉得本文对您认识MQTT的QoS概念有所帮助,请记得点赞收藏,如果有任何疑问,欢迎在下发评论区与我讨论,谢谢阅读!

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
10天前
|
存储 供应链 物联网
探索未来:区块链、物联网与虚拟现实技术的融合与创新
【10月更文挑战第15天】本文深入探讨了新兴技术如区块链、物联网(IoT)和虚拟现实(VR)的发展趋势及其在现代社会的应用。通过分析这些技术的独特属性和它们如何相互补充,我们揭示了一个由高度互联、智能化和沉浸式体验定义的未来图景。文章不仅讨论了这些技术当前的挑战,还展望了它们在未来可能带来的转变,旨在为读者提供对这些令人兴奋的技术趋势的全面理解。
|
10天前
|
安全 物联网 区块链
未来已来:探索区块链技术、物联网与虚拟现实的融合趋势
【10月更文挑战第15天】 在数字化浪潮中,区块链、物联网(IoT)和虚拟现实(VR)技术正引领着一场革命。本文将深入探讨这三种技术的发展趋势和相互融合的潜力,以及它们如何共同塑造我们的未来。我们将从基本概念入手,逐步揭示这些技术如何影响经济、社会和日常生活,同时提供具体应用场景以展示其变革力量。
|
5天前
|
安全 物联网 区块链
探索未来:区块链技术在物联网和虚拟现实中的融合应用
【10月更文挑战第21天】本文深入探讨了区块链、物联网(IoT)和虚拟现实(VR)这三项前沿技术的发展趋势,并分析了它们如何相互作用以推动创新。我们将通过具体案例来揭示这些技术如何改变我们的工作和生活方式,同时提供对未来发展的一些预测。
|
8天前
|
网络协议 物联网 网络性能优化
物联网协议比较 MQTT CoAP RESTful/HTTP XMPP
【10月更文挑战第18天】本文介绍了物联网领域中四种主要的通信协议:MQTT、CoAP、RESTful/HTTP和XMPP,分别从其特点、应用场景及优缺点进行了详细对比,并提供了简单的示例代码。适合开发者根据具体需求选择合适的协议。
26 5
|
5天前
|
供应链 物联网 区块链
未来技术浪潮之巅:区块链、物联网与虚拟现实的应用探索
【10月更文挑战第20天】随着技术的飞速发展,新兴技术如区块链、物联网和虚拟现实正在重塑我们的工作和生活方式。本文将深入探讨这些技术的发展趋势和应用场景,并展示如何通过代码示例实现它们在现实世界中的应用。让我们一起揭开这些技术神秘面纱,探索它们在未来的无限可能!
|
13天前
|
传感器 监控 物联网
新技术趋势与应用在科技日新月异的今天,新兴技术如物联网、虚拟现实等正以前所未有的速度改变着我们的生活。本文将深入探讨这些技术的发展趋势和应用场景,揭示它们如何塑造未来。
本文聚焦于物联网和虚拟现实等新兴技术的发展动态及其广泛应用。通过分析当前技术进展、实际应用案例以及未来发展的可能性,本文揭示了这些技术如何深刻影响各行各业,并对未来的趋势进行了展望。
|
15天前
|
供应链 物联网 区块链
未来技术浪潮:区块链、物联网与虚拟现实的融合与创新
【10月更文挑战第11天】 本文深入探讨了区块链技术、物联网(IoT)和虚拟现实(VR)这三种前沿技术的发展趋势及其在各领域的应用前景。通过分析每种技术的核心特点和潜在应用场景,揭示了它们如何相互融合、促进创新,并共同塑造未来社会的面貌。
40 3
|
16天前
|
存储 传感器 物联网
未来已来:区块链技术在物联网与虚拟现实中的应用探索
【10月更文挑战第9天】随着技术的不断进步,区块链、物联网和虚拟现实等新兴技术正逐步渗透到我们的生活中。本文将探讨这些技术如何相互融合,共同推动社会的进步。我们将通过分析它们的发展趋势和应用场景,揭示它们在未来社会中的潜在价值。让我们一起思考如何利用这些技术创造一个更美好的世界。
|
5天前
|
安全 物联网 区块链
未来触手可及:探索区块链、物联网和虚拟现实技术的融合与创新
【10月更文挑战第21天】本文旨在探讨新兴技术——区块链、物联网(IoT)和虚拟现实(VR)——的发展趋势与应用场景。通过分析这些技术的内在联系,揭示它们如何相互促进,共同塑造未来的数字世界。文章将不包含代码示例,而是聚焦于技术融合带来的创新应用和潜在影响,为读者提供一个宏观的视角来理解这些技术的未来走向。
11 0
|
19天前
|
机器学习/深度学习 供应链 物联网
未来技术的浪潮之巅:区块链、物联网与虚拟现实的融合与创新
【10月更文挑战第7天】随着科技不断进步,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)正在逐步改变我们的工作和生活方式。本文将探讨这些技术的发展趋势和应用场景,以及它们如何相互融合,创造出前所未有的新机遇。我们将从基本概念出发,深入到具体应用案例,最后展望未来可能的发展方向。

相关产品

  • 物联网平台