MQTT Qos类型解释
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类型解释相关推荐
- flowable DMN规则引擎几种类型解释_04
文章目录 单一命中 第一个(FIRST) 唯一(UNIQUE) 优先级(PRIORITY) 任何(ANY) 多重命中 输出顺序(OUTPUT ORDER) 规则顺序(RULE ORDER) 采集(CO ...
- Oracle EBS 汇率类型解释
Oracle EBS 汇率类型解释 即期Spot:根据特定日期汇率输入的一种用以执行折换的汇率.此汇率适用于币种的即时兑付. 公司Corporate:所定义的一种用以使公司汇率标准化的汇率.此汇率通常 ...
- MQTT QoS 设计:车联网平台消息传输质量保障
在本专题系列文章中,我们将根据 EMQ 在车联网领域的实践经验,从协议选择等理论知识,到平台架构设计等实战操作,与大家分享如何搭建一个可靠.高效.符合行业场景需求的车联网平台. 在此之前,我们已经介绍 ...
- 04 flowable DMN规则引擎几种类型解释
项目地址:https://gitee.com/lwj/flowable.git 分支flowable-base 视频地址:https://www.bilibili.com/video/av797746 ...
- MQTT QoS 详解
本文主要介绍 MQTT 协议中 QoS(服务质量) 的详细内容. 1.概述 MQTT 协议 中规定了消息服务质量(Quality of Service),它保证了在不同的网络环境下消息传递的可靠性,Q ...
- MQTT——QoS服务质量等级
1.QoS是MQTT协议中的一个重要标志位.在固定报头第一个字节,低4位中定义: 2.QoS服务质量等级分为三级:QoS0,QoS1,QoS2; 2.1.QoS0:最多发送一次,到达不到达发布者不管, ...
- Oracle中的Raw类型解释
CAST 将某种数据类型的表达式显式转换为另一种数据类型. RAW,类似于CHAR,声明方式RAW(L),L为长度,以字节为单位,作为数据库列最大2000,作为变量最大32767字节. LONG R ...
- MQTT QoS服务质量
MQTT(Quality of Service)设计了三个等级: QoS 0:消息最多传递一次,如果当时客户端不可用,则会丢失该消息. QoS 1:消息传递至少 1 次. QoS 2:保证消息到达对方 ...
- mqtt qos属性
QoS 存在3个值 分别 0 1 2 QoS 0:消息最多传递 1 次,如果当时 sub 端不可用,则会丢失该消息. QoS 1:消息传递至少 1 次,在 pub 消息之后等待 sub 的 ACK,如 ...
最新文章
- 安装计算机过程中的注意事项,西门子step7安装过程中的注意事项
- 拷贝构造,深度拷贝,关于delete和default相关的操作,explicit,类赋初值,构造函数和析构函数,成员函数和内联函数,关于内存存储,默认参数,静态函数和普通函数,const函数,友元
- Nginx URL重写(rewrite)配置及信息详解
- [thinkphp] 是如何输出一个页面的
- java按钮改变窗口大小_java – 当我们调整窗口大小时,Container中的元素如何调整?...
- android drawLayout抽屉布局
- bypass最新版d盾mysql_Bypass D盾_IIS防火墙SQL注入防御(多姿势)
- 利用TreeView实现C#工具箱效果
- C# string.Format json格式字符串报错”输入字符串的格式不正确“
- 暴力破解之NTscan+密码字典工具
- 代理服务器基本知识普及代理IP使用方法!
- css3boder-image属性使用
- Pro Tools播放引擎设置详解
- 在线模拟装机大学计算机,模拟装机实验.doc
- wifi WPS功能介绍
- nginx rua代码同步非阻塞
- jkd环境安装脚本(jdk-8u201-linux-x64.tar.gz)
- 使用pydicom读取dicom文件,并对文件做一些简单操作
- Geohash应用——附近乡镇信息挖掘(提升检索召回与准确)
- 火狐网页对话框_默认情况下,在Firefox中展开“添加书签”对话框
热门文章
- 不一样的命令行 – Windows PowerShell简介
- 一种视觉惯性+激光传感器的SLAM系统
- iterm2 主题_【超级实用】Iterm2 + ohmyzsh 打造强大的终端编辑器
- 计算机 电脑 系统安装教程,安装电脑的操作系统的方法
- python 申请内存空间、用于创建多维数组_python 申请内存空间,用于创建多维数组的实例...
- c++数据结构队列栈尸体_一本正经的聊数据结构(3):栈和队列
- Java数据类型及变量作业_day02、Java变量与数据类型
- php laravel用的多不,php-Laravel多个可选参数不起作用
- java socket 包头包体_自定义协议封装包头、包体
- python周末列表的表示形式合并_Python 列表合并题