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

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

展开
收起
小易01 2023-07-19 20:13:55 847 分享 版权
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) 的消息队列产品体系,全系列产品 Serverless 化。RocketMQ 中文社区:https://rocketmq-learning.com/

还有其他疑问?
咨询AI助理