当 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 的处理更复杂,可能产生更多的网络开销和延迟,但也不会导致明显的消息堆积。
=
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/