当前位置:首页 > 大杂烩 > 正文内容

MQTT-QOS消息质量等级介绍

高老师11个月前 (11-19)大杂烩178

QOS:消息的质量等级
QOS常见的取值:
1、0:消息最多发送一次   -----> 可能会导致消息的丢失
2、1:消息至少发送一次   -----> 肯定不会出现消息的丢失,消息可能会重复
3、2:消息仅有一次发送  ------> 消息肯定不会丢失,消息也不会重复


在发送消息的时候可以指定消息的质量等级,一般情况下broker获取到这个消息以后,就会按照发送时所指定的消息的质量等级把消息发给订阅者。特殊情况下(当订阅者指定了订阅时消息的最大的质量等
级。),消息质量等级可能会发生改变。


Qos = 0 , 即发即弃 ,不需要等待确认 , 不需要存储和重传。接收端永远接收不到重复的报文

Qos = 1 , 引用了应答和重传机制

Qos = 2:

1、为什么不会出现消息的丢失: 和Qos = 1的情况一样

2、为什么不会出现消息重复:在Qos = 2的情况下,可以通过packet id对报文进行去重


Qos三个常见取值的应用场景:

0:传输一些高频且不那么重要的数据,比如传感器数据。

1:传输一些较为重要的数据,比如下达关键指令

2:通常我们会在金融、航空等行业场景下会更多地见到 QoS 2 的使用。


不同QoS的适用场景

QoS 0

QoS 0 的缺点是可能会丢失消息,消息丢失的频率依赖于你所处的网络环境,并且可能使你错过断开连接期间的消息,不过优点是投递的效率较高。

所以我们通常选择使用 QoS 0 传输一些高频且不那么重要的数据,比如传感器数据,周期性更新,即使遗漏几个周期的数据也可以接受。


QoS 1

QoS 1 可以保证消息到达,所以适合传输一些较为重要的数据,比如下达关键指令、更新重要的有实时性要求的状态等。但因为 QoS 1 还可能会导致消息重复,所以当

我们选择使用 QoS 1 时,还需要能够处理消息的重复,或者能够允许消息的重复。


QoS 2

QoS 2 既可以保证消息到达,也可以保证消息不会重复,但传输成本最高。如果我们不愿意自行实现去重方案,并且能够接受 QoS 2 带来的额外开销,那么 QoS 2 将是

一个合适的选择。通常我们会在金融、航空等行业场景下会更多地见到 QoS 2 的使用。

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/855.html

分享给朋友:

“MQTT-QOS消息质量等级介绍” 的相关文章

c#中string和StringBuilder效率对比

c#中string和StringBuilder效率对比

    c#中string和StringBuilder直接看看执行速度。(2).String类型累计赋值Test               ...

PHP安装mongodb扩展

PHP安装mongodb扩展

在安装之前我们先看看官方给出的依赖关系.首先是dll文件和mongodb软件的依赖关系然后是PHP文件和dll的依赖关系我的是phpstudy的集成环境PHP5.4.45 NTS+Apache+Mysql【一】.安装mongodb3.0软件对比依赖关系下载mongodb3.0.msi软件,完整名称:...

Git从远程仓库更新文件

Git从远程仓库更新文件

 git   pull  https://git.oschina.net/392223903/learn.git   master   换为您的git地址...

C# md5加密,C# md5加密代码

C# md5加密,C# md5加密代码

public static string GetMD5(string str) {     //创建MD5对象     MD5 md5 = MD5.C...

IE浏览器无法显示此页解决方案

IE浏览器无法显示此页解决方案

方案1.IE浏览器"无法显示此页"的解决办法(1).按下Win+R键打开运行,输入netsh winsock reset,回车;(2).重启即可. 方案2.IE浏览器"无法显示此页"的解决办法 (1).设置-连接-局域网设置-自动检测设置开...

IIS7.0无法加载CSS的处理办法

IIS7.0无法加载CSS的处理办法

首先网页全部是纯静态的文件,本地测试正常访问,服务器端无法加载CSS,并且无法查看CSS文件的内容。 解决方案:关闭网站的压缩->>静态压缩和动态压缩...