最火的物联网技术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
目录
相关文章
|
1月前
|
供应链 物联网 区块链
探索未来技术潮流:区块链、物联网、虚拟现实的融合与创新
【10月更文挑战第41天】随着科技的不断进步,新技术如区块链、物联网、虚拟现实等正在逐步渗透到我们的日常生活中。本文将深入探讨这些技术的发展趋势和应用场景,以及它们如何相互融合,共同推动社会的进步。我们将通过具体的代码示例,展示这些技术在实际应用中的潜力和价值。无论你是科技爱好者,还是对未来充满好奇的探索者,这篇文章都将为你打开一扇通往未来的窗口。
101 56
|
22天前
|
存储 安全 物联网
未来已来:区块链技术在物联网与虚拟现实中的应用
随着科技的不断进步,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)正在逐渐改变我们的生活和工作方式。本文将探讨这些技术的发展趋势和应用场景,以及它们如何相互融合,为我们带来更便捷、安全和沉浸式的体验。
|
18天前
|
供应链 监控 数据可视化
物联网技术在物流与供应链管理中的应用与挑战
本文探讨了物联网技术在物流与供应链管理中的应用,通过实时追踪、信息共享、智能化决策等手段,大幅提升了管理效率和智能化水平。特别介绍了板栗看板作为专业可视化工具,在数据监控、分析及协同作业中的重要作用。未来,随着技术的进一步发展,物流与供应链管理将更加智能高效,但也面临数据安全、标准化等挑战。
|
28天前
|
供应链 物联网 区块链
未来技术的脉动:探索区块链、物联网与虚拟现实的融合趋势
本文深入探讨了区块链技术、物联网(IoT)和虚拟现实(VR)这三个领域的最新发展趋势,以及它们在现代科技生态中的交互作用。通过分析这些技术的独特优势和面临的挑战,我们揭示了它们如何共同塑造未来的技术景观,特别是在数据安全、智能设备管理和沉浸式体验方面。文章还讨论了这些技术融合后可能带来的社会和文化影响,以及它们如何推动创新和促进经济增长。
56 3
|
1月前
|
安全 物联网 物联网安全
揭秘区块链技术在物联网(IoT)安全中的革新应用
揭秘区块链技术在物联网(IoT)安全中的革新应用
|
1月前
|
传感器 存储 物联网
物联网:关键技术剖析与应用拓展
物联网(IoT)通过互联网连接各种设备,实现数据交换和远程控制。本书深入解析了物联网的关键技术,如传感器、通信协议、数据处理等,并探讨了其在智慧城市、工业自动化等领域的广泛应用前景。
|
1月前
|
安全 物联网 区块链
未来触手可及:探索区块链技术、物联网与虚拟现实的融合应用
随着技术的飞速发展,区块链、物联网和虚拟现实等新兴技术已不再局限于科技领域的讨论话题,它们正在成为推动社会进步的重要力量。本文将深入探讨这些技术的发展趋势和实际应用,揭示它们如何相互交织,共同塑造一个更加智能和互动的未来世界。通过分析这些技术的独特优势和面临的挑战,我们将展望它们在金融、医疗、教育等领域的潜在影响,并探讨如何利用这些技术解决现实世界的问题。
|
1月前
|
存储 传感器 物联网
探索未来:区块链、物联网与虚拟现实技术的融合趋势及应用场景
随着技术的快速发展,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)正在逐步渗透到我们的生活中。本文将探讨这三种技术的发展趋势,并分析它们如何相互融合,共同塑造未来的应用场景。我们将通过具体示例,展示这些技术如何在金融、医疗、教育等领域创造新的可能性,并讨论它们对日常生活的影响。
|
1月前
|
供应链 物联网 区块链
探索区块链技术的未来:从金融到物联网的广泛应用
探索区块链技术的未来:从金融到物联网的广泛应用
|
1月前
|
监控 安全 物联网安全
物联网安全与隐私保护技术
物联网安全与隐私保护技术
73 0

相关产品

  • 物联网平台