QoS 存在3个值 分别 0 1 2
QoS 0:消息最多传递 1 次,如果当时 sub 端不可用,则会丢失该消息。
QoS 1:消息传递至少 1 次,在 pub 消息之后等待 sub 的 ACK,如果没收到 ACK 则重新发送消息,这种模式能保证消息至少能到达一次,但无法保证消息重复。
QoS 2:消息仅传送 1 次,QoS 2 设计了重发和重复消息发现机制,保证消息到达对方并且严格只到达一次。因此正常来说这种模式下 sub 端即使离线,在上线后也会收到消息。
而mqtt的消息重发建立在订阅客户端设置Clean Session 为false的情况。
mqtt5.0:增加了流量控制,在 MQTT v5 中,发送端会有一个初始的发送配额,每当它发送一个 QoS 大于 0 的 PUBLISH 报文,发送配额就相应减一,而每当收到一个响应报文(PUBACK、PUBCOMP 或 PUBREC),发送配额就会加一。如果接收端没有及时响应,导致发送端的发送配额减为 0,发送端应当停止发送所有 QoS 大于 0 的 PUBLISH 报文直至发送配额恢复。我们可以将其视为变种的令牌桶算法,它们之间的区别仅仅是增加配额的方式从以固定速率增加变成了按实际收到响应报文的速率增加。
这种算法能够更加积极和充分地利用资源,因为它没有在发送速率的层面上进行限制,发送速率完全取决于对端的响应速率和网络情况,如果接收端空闲且网络良好,那么发送端可以得到比较高的发送速率,反之则会被限制到一个比较低的发送速率上。
为了支持流量控制,MQTT v5 新增了一个 Receive Maximum 属性,它存在于 CONNECT 报文与 CONNACK 报文,表示客户端或服务端愿意同时处理的 QoS 为 1 和 2 的 PUBLISH 报文最大数量,即对端可以使用的最大发送配额。如果接收端已收到但未发送响应的 QoS 大于 0 的 PUBLISH 报文数量超过 Receive Maximum 的值,接收端将断开连接避免受到更严重的影响。

mqtt qos属性相关推荐

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

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

  2. MQTT Qos类型解释

    MQTT Qos类型解释 原文连接: https://blog.csdn.net/yangguosb/article/details/78653228 内容: Qos0 发送者只发送一次消息,不进行重 ...

  3. MQTT QoS 详解

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

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

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

  5. MQTT QoS服务质量

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

  6. php mqtt qos,Mqtt Qos 深度解读

    1.QoS含义 : Quality of Service,服务质量 2.作用域 发布者的Qos 订阅者的Qos 3.等级与作用 level 0:最多一次的传输 level 1:至少一次的传输,(鸡肋) ...

  7. MQTT QOS等级订阅和发布的关系

    发布publish和订阅subscribe都可以指定qos等级. pub时指定的qos是跟服务器有关系的,比如qos2时,是保证服务器只收到一次,而不是最终的订阅者. 订阅者在sub时虽然指定了qos ...

  8. MQTT 协议快速体验

    全球物联网正在高速发展,专门针对低带宽和不稳定网络环境的物联网应用设计的 MQTT 协议也因此得到广泛应用. MQTT 是一种基于发布/订阅模式轻量级消息传输协议,具有简单易实现.支持 QoS.报文小 ...

  9. SpringBoot 整合MQTT 消息推送

    一: pom文件添加依赖 <!-- mqtt --><dependency><groupId>org.springframework.integration< ...

最新文章

  1. Spring MVC 特性实现文件下载
  2. 天池读书会六月场来啦,零基础也能听的懂的编程分享!
  3. ElastieSearch安装以及与Mongodb的概念对照关系
  4. vertx rest 跨域_在基于简单Vertx Rest的应用程序上为REST资源设置基本响应HTTP标头...
  5. 人脸识别案例:【实战】opencv人脸检测+Haar特征分类器
  6. 测试构造器它山之玉可以重构:身份证号(第四天)
  7. 怎样查找共享文件_计算机操作系统学习笔记(五):文件管理
  8. LeetCode之反转字符串中的单词
  9. 美术集网校—多点透视如何运用于绘画中?学会透视增加绘画体积感!
  10. 连享会新命令 lxh:随时查看 Stata 资源
  11. 通过谷歌骇客语法搜索后台:_书评:我们的骇客并拥有
  12. 找工作时单位普遍要求 35 岁以下,35以上的都干嘛去了?
  13. 基于Gromacs的蛋白分子动力学模拟(RMSD、RMSF及蛋白的回旋半径)
  14. Ubuntu Desktop 更改默认应用程序 (Videos -> SMPlayer)
  15. HDU 1814(染色)
  16. 知行合一(科学实践理论)
  17. 数据库课程总结(ORACLE)
  18. 大神手把手教源码阅读的方法、误区以及三种境界
  19. js 利用Unicode码随机生成中文昵称
  20. CRM系统为企业减少客户流失率

热门文章

  1. 华钜同创:跨境运营培训如何提升亚马逊产品转化率
  2. 小孩机器人编程真的有用吗
  3. msvcp110.dll丢失怎么修复(一键修复办法)
  4. 激光雷达的结构和分类
  5. 深度学习中epoch,batch的概念--笔记
  6. 把废弃的Kindle改装成自己的Linux开发平台
  7. Swift 中 throws 异常抛出
  8. 我眼中的多元回归模型
  9. 免费的Windows系统的条形码打印工具
  10. RSA密码原理详解及算法实现(六步即可掌握)