最火的物联网技术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一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
5天前
|
存储 供应链 物联网
未来技术纵横谈:区块链、物联网与虚拟现实的融合革新
【4月更文挑战第21天】 随着科技不断进步,新兴技术正在重塑我们的世界。本文将深入探讨三种引人注目的技术——区块链、物联网(IoT)和虚拟现实(VR)——它们各自的发展趋势及其在不同领域的应用前景。区块链技术以其不可篡改的数据记录特性,在金融安全、供应链管理等领域展现出巨大潜力;物联网通过智能设备互联,推动智能家居、智慧城市的发展;而虚拟现实则以其沉浸式体验,改变教育、娱乐等多个行业的面貌。这些技术的交叉融合预示着一个更加智能、互联和虚拟的未来。
17 5
|
4天前
|
供应链 安全 物联网
未来技术纵横谈:区块链、物联网与虚拟现实的融合革新
【4月更文挑战第22天】 在数字化浪潮中,新兴技术的蓬勃发展正推动着传统行业的变革与升级。区块链技术以其不可篡改和去中心化的特性,为数据安全和信息透明提供了新的解决方案;物联网(IoT)通过智能设备的互联互通,实现了环境与行为的智能化管理;而虚拟现实(VR)技术则拓展了人们的感官体验,创造了沉浸式互动的新空间。本文聚焦于这些技术的发展趋势,探讨其在多个应用场景中的结合与创新,旨在描绘一幅技术交织下的未来蓝图。
15 3
|
1天前
|
安全 物联网 区块链
未来技术的融合潮流:区块链、物联网与虚拟现实的交汇点
【4月更文挑战第25天】 随着科技的不断进步,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)已逐渐从概念验证走向实际应用。这些技术不仅单独发展迅猛,而且开始相互融合,创造出前所未有的应用场景和商业模式。本文将深入探讨这些技术的发展趋势,分析它们如何协同工作,以及在多个行业中的潜在应用。特别地,我们将聚焦于金融、医疗和娱乐等行业,揭示这些技术如何推动创新并带来颠覆性的变化。
|
1天前
|
供应链 物联网 区块链
未来交织:区块链技术、物联网和虚拟现实的融合革新
【4月更文挑战第25天】 随着科技的迅猛发展,新兴技术如区块链、物联网(IoT)、以及虚拟现实(VR)正在重塑我们的世界。这些技术不仅在独立领域中取得显著进展,而且开始相互交融,催生出一系列创新应用。本文将探讨这些技术的发展趋势,并深入剖析它们在不同行业中的应用场景,包括供应链管理、智能家居、远程工作、以及沉浸式娱乐等领域。
|
1天前
|
供应链 安全 物联网
未来技术的融合潮流:区块链、物联网与虚拟现实的革新之旅
【4月更文挑战第25天】 在数字时代的浪潮中,新兴技术正以前所未有的速度重塑世界。本文将深入探讨区块链技术、物联网(IoT)以及虚拟现实(VR)这三个领域的发展趋势和实际应用。从确保交易安全到实现设备的智能对话,再到创造沉浸式体验,这些技术正在推动着社会的各个维度向前发展。文章旨在提供一个全景视角,展现这些技术如何相互交织,共同构建一个更加智能、互联且安全的未来。
5 0
|
2天前
|
安全 物联网 区块链
未来技术的融合潮流:区块链、物联网和虚拟现实的交汇点
【4月更文挑战第24天】 随着科技的不断进步,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)正在重塑我们的世界。这些技术不仅单独发展,而且越来越多地相互结合,创造出前所未有的应用场景。本文将探讨这些技术的独立趋势,并着重分析它们如何交织在一起,形成一个全新的技术生态系统,从而推动行业革新和社会进步。
|
2天前
|
监控 物联网 区块链
未来技术纵横谈:区块链、物联网与虚拟现实的融合与创新
【4月更文挑战第23天】随着科技的不断进步,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)等正在重塑我们的世界。本文将深入探讨这些技术的最新发展趋势及其在不同领域的应用案例,揭示它们如何相互交织,共同推动着数字化转型的浪潮。
|
13天前
|
供应链 安全 物联网
未来交织:区块链、物联网和虚拟现实的技术革新与融合应用
【4月更文挑战第13天】 在数字化时代的浪潮中,新兴技术正以前所未有的速度重塑着世界。本文将深入分析区块链技术的去中心化信任机制、物联网(IoT)的智能连接网络,以及虚拟现实(VR)的沉浸式体验如何独立发展并开始交汇融合,共同构建一个更加智能、安全和互动的未来。我们将探讨这些技术的发展趋势,揭示它们在各行各业的潜在应用场景,并讨论它们如何联合起来推动第四次工业革命。
|
18天前
|
安全 物联网 区块链
未来技术浪潮:区块链、物联网与虚拟现实的革新融合
【4月更文挑战第8天】 随着科技的迅猛发展,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)正在重塑我们的世界。本文将深入探讨这些技术的发展趋势,并分析它们在不同应用场景中的结合点与潜力。区块链技术以其不可篡改性和去中心化特点为数据安全提供了新的解决方案。物联网通过使设备互联互通极大提升了自动化水平,而虚拟现实正改变着人们的交流和体验方式。这三者的融合预示着一个更加智能、互联且沉浸式的未来。
|
19天前
|
存储 供应链 物联网
未来技术纵横谈:区块链、物联网与虚拟现实的融合革新
【4月更文挑战第7天】 在数字化浪潮推动下,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)正不断重塑我们的工作、生活方式及商业模式。本文将深入探讨这些技术的发展趋势,以及它们如何相互交织,共同构建一个更加智能、互联和沉浸式的未来世界。区块链技术以其不可篡改的数据记录和去中心化特性,为安全性和透明度设立了新标准;物联网通过使设备智能化和网络化,推动了自动化和效率的飞跃;而虚拟现实则在娱乐、教育和医疗等领域开辟了前所未有的交互体验。文章还将剖析这些技术在实际应用中的案例,展示它们如何联合起来推动创新。
12 0

相关产品

  • 物联网平台