MQTT Qos类型解释

原文连接:

https://blog.csdn.net/yangguosb/article/details/78653228

内容:
Qos0
  发送者只发送一次消息,不进行重试,Broker不会返回确认消息。在Qos0情况下,Broker可能没有接受到消息,流程如下图所示:

Qos1
  发送者最少发送一次消息,确保消息到达Broker,Broker需要返回确认消息PUBACK。在Qos1情况下,Broker可能接受到重复消息,流程如下图所示:

Qos2
  Qos2使用两阶段确认来保证消息的不丢失和不重复。在Qos2情况下,Broker肯定会收到消息,且只收到一次,流程如下图所示:

Qos1 VS Qos2
与Qos1相比,Qos2的开销会很大,因为Broker有额外的两个动作:

去重。为了保证消息不重复,Broker必须进行去重处理;
确保响应消息PUBREC到达客户端。Broker必须等待客户端对PUBREC消息的响应PUBREL,只有收到客户端的确认消息后,Broker才能对订阅者投递消息。

原文连接:

https://www.jianshu.com/p/ebe4b2c0461d

内容:

发布publish和订阅subscribe都可以指定qos等级。
pub时指定的qos是跟服务器有关系的,比如qos2时,是保证服务器只收到一次,而不是最终的订阅者。
订阅者在sub时虽然指定了qos,但是收到的消息不一定就是指定qos等级的消息,而可能是降级的了。
为响应订阅而发出的消息的有效载荷的QoS必须是原始发布消息的QoS和服务端授予的QoS两者中的最小值。
比如sub qos2,pub qos0,此时服务器转发的消息是qos0级别也就是sub可能收到一次消息也可能收不到。
再如sub qos0, pub qos2,此时服务器转发的消息也是qos0级别,sub也是可能只收到一次消息或者收不到。
也就是服务器只会按pub和sub两者qos等级最小的那个qos规则来发送消息。

pub时指定的qos是服务器肯定按此规则接收,但是最终订阅者不一定。
sub时指定的qos表示订阅者可以接收的最高消息等级,也就是可能收到更低等级的消息。

MQTT Qos类型解释相关推荐

  1. flowable DMN规则引擎几种类型解释_04

    文章目录 单一命中 第一个(FIRST) 唯一(UNIQUE) 优先级(PRIORITY) 任何(ANY) 多重命中 输出顺序(OUTPUT ORDER) 规则顺序(RULE ORDER) 采集(CO ...

  2. Oracle EBS 汇率类型解释

    Oracle EBS 汇率类型解释 即期Spot:根据特定日期汇率输入的一种用以执行折换的汇率.此汇率适用于币种的即时兑付. 公司Corporate:所定义的一种用以使公司汇率标准化的汇率.此汇率通常 ...

  3. MQTT QoS 设计:车联网平台消息传输质量保障

    在本专题系列文章中,我们将根据 EMQ 在车联网领域的实践经验,从协议选择等理论知识,到平台架构设计等实战操作,与大家分享如何搭建一个可靠.高效.符合行业场景需求的车联网平台. 在此之前,我们已经介绍 ...

  4. 04 flowable DMN规则引擎几种类型解释

    项目地址:https://gitee.com/lwj/flowable.git 分支flowable-base 视频地址:https://www.bilibili.com/video/av797746 ...

  5. MQTT QoS 详解

    本文主要介绍 MQTT 协议中 QoS(服务质量) 的详细内容. 1.概述 MQTT 协议 中规定了消息服务质量(Quality of Service),它保证了在不同的网络环境下消息传递的可靠性,Q ...

  6. MQTT——QoS服务质量等级

    1.QoS是MQTT协议中的一个重要标志位.在固定报头第一个字节,低4位中定义: 2.QoS服务质量等级分为三级:QoS0,QoS1,QoS2; 2.1.QoS0:最多发送一次,到达不到达发布者不管, ...

  7. Oracle中的Raw类型解释

    CAST 将某种数据类型的表达式显式转换为另一种数据类型. RAW,类似于CHAR,声明方式RAW(L),L为长度,以字节为单位,作为数据库列最大2000,作为变量最大32767字节.  LONG R ...

  8. MQTT QoS服务质量

    MQTT(Quality of Service)设计了三个等级: QoS 0:消息最多传递一次,如果当时客户端不可用,则会丢失该消息. QoS 1:消息传递至少 1 次. QoS 2:保证消息到达对方 ...

  9. mqtt qos属性

    QoS 存在3个值 分别 0 1 2 QoS 0:消息最多传递 1 次,如果当时 sub 端不可用,则会丢失该消息. QoS 1:消息传递至少 1 次,在 pub 消息之后等待 sub 的 ACK,如 ...

最新文章

  1. 安装计算机过程中的注意事项,西门子step7安装过程中的注意事项
  2. 拷贝构造,深度拷贝,关于delete和default相关的操作,explicit,类赋初值,构造函数和析构函数,成员函数和内联函数,关于内存存储,默认参数,静态函数和普通函数,const函数,友元
  3. Nginx URL重写(rewrite)配置及信息详解
  4. [thinkphp] 是如何输出一个页面的
  5. java按钮改变窗口大小_java – 当我们调整窗口大小时,Container中的元素如何调整?...
  6. android drawLayout抽屉布局
  7. bypass最新版d盾mysql_Bypass D盾_IIS防火墙SQL注入防御(多姿势)
  8. 利用TreeView实现C#工具箱效果
  9. C# string.Format json格式字符串报错”输入字符串的格式不正确“
  10. 暴力破解之NTscan+密码字典工具
  11. 代理服务器基本知识普及代理IP使用方法!
  12. css3boder-image属性使用
  13. Pro Tools播放引擎设置详解
  14. 在线模拟装机大学计算机,模拟装机实验.doc
  15. wifi WPS功能介绍
  16. nginx rua代码同步非阻塞
  17. jkd环境安装脚本(jdk-8u201-linux-x64.tar.gz)
  18. 使用pydicom读取dicom文件,并对文件做一些简单操作
  19. Geohash应用——附近乡镇信息挖掘(提升检索召回与准确)
  20. 火狐网页对话框_默认情况下,在Firefox中展开“添加书签”对话框

热门文章

  1. 不一样的命令行 – Windows PowerShell简介
  2. 一种视觉惯性+激光传感器的SLAM系统
  3. iterm2 主题_【超级实用】Iterm2 + ohmyzsh 打造强大的终端编辑器
  4. 计算机 电脑 系统安装教程,安装电脑的操作系统的方法
  5. python 申请内存空间、用于创建多维数组_python 申请内存空间,用于创建多维数组的实例...
  6. c++数据结构队列栈尸体_一本正经的聊数据结构(3):栈和队列
  7. Java数据类型及变量作业_day02、Java变量与数据类型
  8. php laravel用的多不,php-Laravel多个可选参数不起作用
  9. java socket 包头包体_自定义协议封装包头、包体
  10. python周末列表的表示形式合并_Python 列表合并题