开发者社区 > 云原生 > 消息队列 > 正文

mqtt客户端的qos设置为1或者2的时候会导致消息堆积嘛?

mqtt客户端的qos设置为1或者2的时候会导致消息堆积嘛?

展开
收起
小易01 2023-07-19 20:13:55 249 0
2 条回答
写回答
取消 提交回答
  • 当 MQTT 客户端的 QoS(服务质量)设置为 1 或 2 时,并不会直接导致消息堆积。QoS 主要影响消息传递的可靠性。

    • QoS 0:最多一次传递(At most once delivery),消息发送后不保证可靠传递。这种情况下,即使网络中断或客户端离线,消息也不会被重新传递。因此,不会导致消息堆积。

    • QoS 1:至少一次传递(At least once delivery),确保消息至少被传递一次,但可能会重复传递。当消息发送后,如果没有收到 PUBACK 确认消息,客户端将重新发送消息,直到收到确认。这可能会导致在某些情况下消息重复传递,但不会导致明显的消息堆积。

    • QoS 2:恰好一次传递(Exactly once delivery),确保消息仅被传递一次。通过对消息进行握手流程和去重机制,确保消息只传递一次。与 QoS 1 相比,QoS 2 的处理更复杂,可能产生更多的网络开销和延迟,但也不会导致明显的消息堆积。
      =

    2023-07-28 13:18:47
    赞同 展开评论 打赏
  • 意中人就是我呀!

    看网速、消费速度和生产速度了。此回答整理至钉群“阿里云 微消息队列 MQTT产品咨询群”。

    2023-07-19 23:13:30
    赞同 展开评论 打赏

高弹性低成本、更稳定更安全、智能化免运维的消息队列服务,涵盖RocketMQ、Kafka、RabbitMQ、MQTT、MNS等。 RocketMQ一站式学习:https://rocketmq-learning.com

相关产品

  • 云消息队列 MQ
  • 热门讨论

    热门文章

    相关电子书

    更多
    RocketMQ Client-GO 介绍 立即下载
    RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载
    基于 RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载