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 的使用。
c#中string和StringBuilder直接看看执行速度。(2).String类型累计赋值Test  ...
1.全局用户信息设置 git config --global user.name gaojiufeng git config --global user.email 392223903...
1.关机Process.Start("shutdown", "-s -t 0"); 2. 注销 Proc...
1.文件redis-2.6.14.tar.gz的上传 /home/john/创建rdtar文件夹 上传redis-2.6.14.tar.gz至rdtar文件夹 2.解压文件 cd /home/john/rdtar tar &n...
首先在阿里云申请免费的证书,选择自动生成证书。然后就是nginx虚拟主机配置文件的修改。以下是我的配置文件(因为公司开发小程序,没有办法只能使用https)。您只需要关注带有ssl的配置选项,我增加了一个监听80和443的端口,同时增加了http跳转https的配置server &nbs...
navicat for mysql 11.1.13 企业破解版.绿色软件免安装,请直接打开安装说明.一定要看说明.下载地址: http://pan.baidu.com/s/1dFINxNN下载链接失效,直接点击上方QQ呼叫...