我是靠谱客的博主 飘逸纸鹤,最近开发中收集的这篇文章主要介绍第07课:QoS2 和 OoS 的最佳实践,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

QoS0 和 QoS1 是相对简单的 QoS 等级,QoS2 不仅要确保 Receiver 能收到 Sender 发送的消息,还要保证消息不重复。它的重传和应答机制就要复杂一些,同时开销也是最大的。下面就让我们来看一下 QoS2 的机制。本节课核心内容:

  • QOS2
  • QoS 和会话(Session)
  • 如何选择 QoS

7.1 QOS2

在 QoS2 下,一条消息的传递流程如下:

enter image description here

QoS 使用 2 套请求/应答流程(一个 4 段的握手)来确保 Receiver 收到来自 Sender 的消息,且不重复:

  1. Sender 发送 QoS 为 2 的 PUBLISH 数据包,数据包 Packet Identifier 为 P,并在本地保存该 PUBLISH 包;
  2. Receiver 收到 PUBLISH 数据包以后,在本地保存 PUBLISH 包的 Packet Identifier P,并回复 Sender 一个 PUBREC 数据包,PUBREC 数据包可变头中的 Packet Identifier 为 P,没有消息体(Payload);
  3. 当 Sender 收到 PUBREC,它就可以安全地丢弃掉初始的 Packet Identifier 为 P 的 PUBLISH 数据包,同时保存该 PUBREC 数据包,同时回复 Receiver 一个 PUBREL 数据包,PUBREL 数据包可变头中的 Pa

最后

以上就是飘逸纸鹤为你收集整理的第07课:QoS2 和 OoS 的最佳实践的全部内容,希望文章能够帮你解决第07课:QoS2 和 OoS 的最佳实践所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部