0%

MQTT服务质量qos

文章字数:546,阅读全文大约需要2分钟

QOSQuality of Service服务质量,有发布者的QOS和订阅者的QOS

等级和作用

  1. level0: 最多传输一次
  2. level1: 至少传输一次
  3. level2: 只有一次的传输

交互过程

qos0

1
生产者---》中间件---》消费者

只会发送一次,不管有没有收到。适合不是很重要的数据,比如传感器温度。反正很快会有下一次的数据。

qos1

1
2
生产者《------》中间件《-------》消费者
发送 确认 发送 确认

接受者需要发送确认信息,确认自己收到了。发送者如果没有收到确认信息就会再次发送。这个保证了发送的信息一定会到达,但是如果确认的信息没有被收到,可能导致重复发送。

qos2

1
2
3
发送者发送信息+信息编号--》接受者接收,保存编号--》确认收到+信息编号
--》发送者收到确认消息后发送请求删除编号--》接受者删除编号,并发请求删除编号
--》接受者删除编号

增加了信息编号的传递,可以有效防止重复信息,但是多了删除编号的步骤。
并且假如接受者的删除请求没有到达(即没收到删除请求就有新的message)还会多次发送删除请求。
信息发送的次数过多。