消息队列队列
Queue 是什么?
真正存消息的地方,消费者从这里取走消息
类比:家门口的信箱,信在这里等你取
它是什么
Queue 是 RabbitMQ 里唯一存消息的实体,FIFO 顺序,支持持久化、TTL、最大长度、死信交换机等属性。
多个消费者可以监听同一个队列,消息会被分摊,但一条消息只会投给一个消费者。
关键属性
队列声明时的参数一旦创建就不好改,建队列前想清楚。
- durable:队列持久化,重启不丢(消息还要设 delivery_mode=2)
- x-message-ttl:消息存活时间,配合死信做延迟队列
- x-max-length:队列最大长度,满了丢弃头部或拒绝新消息
- x-dead-letter-exchange:消费失败/过期后转到哪
- x-queue-type: quorum:Raft 复制队列,比经典镜像队列更可靠
堆积时会怎样
经典队列默认内存优先,堆积多了会频繁换页到磁盘,吞吐骤降。高堆积场景应使用 quorum 队列或开启 lazy 模式让消息直接落盘。