RabbitMQ 新建队列(Add a new queue)完整详解

RabbitMQ 新建队列(Add a new queue)红框区域完整详解
红框是手动创建 Queue 队列的配置表单,逐行拆解每个参数含义、业务用途、生产环境推荐配置;同时结合页面上方大量 *.x.delay 延迟队列做补充说明。
一、基础必填配置项
1. Virtual host(虚拟主机)
当前默认 /,代表当前选中的虚拟主机:
- 作用:RabbitMQ 多租户隔离,不同 vhost 交换机、队列完全隔离,互不互通;
- 规范:创建队列前必须选对业务所属虚拟主机,跨 vhost 无法互相收发消息。
2. Type(队列类型)
下拉选项:Default for virtual host / classic / quorum / stream
- classic(经典队列)
传统磁盘队列,兼容所有旧版本,支持 TTL、死信、延迟、单消费者等全部特性;页面上方*.x.delay延迟队列全是 classic 类型。 - quorum(仲裁队列,3.8+推荐生产主用)
集群高可用,消息复制多节点,宕机丢消息概率更低;但部分老高级特性支持有限。 - stream(流队列)
海量日志、时序数据场景,支持重复消费、按位点读取,业务消息很少用。 - Default for virtual host:跟随该虚拟主机全局默认类型。
3. Name(队列名称,必填*)
队列唯一标识,生产者/消费者通过名称操作队列:
- 规则:区分大小写,不能包含特殊控制字符;同 vhost 下名称不能重复;
- 示例:
order_pay_queue、user_notify_queue; - 你截图里
enqueue.exchange.xxxx.x.delay是延迟队列命名规范,用来存放等待到期的延时消息。
4. Durability(持久化)
两个选项:
- Durable(持久,生产必选):队列元数据写入磁盘,RabbitMQ 重启后队列不会消失;
Transient(临时):仅内存存储,服务重启队列直接销毁,仅测试临时场景使用。
注意:队列持久 ≠ 消息持久,消息持久还需要生产者发送时设置
delivery_mode=2。
二、Arguments 自定义参数(高级特性,页面快捷按钮一键填充)
下方一排带问号的按钮是高频参数快捷入口,点击会自动填充键值对到上方输入框,逐个说明:
1. Auto expire(队列自动过期 x-expires)
单位:毫秒。
- 逻辑:队列空闲多久无消费者、无消息后自动删除;
- 适用:临时一次性任务队列,避免大量闲置队列堆积。
2. Message TTL(消息过期 x-message-ttl)
单位:毫秒。
- 逻辑:队列内所有消息统一设置过期时间,超时未消费自动变成死信;
- 你的截图里大量
*.x.delay延迟队列核心就是靠这个参数实现延时。
3. Overflow behaviour(消息溢出策略 x-overflow)
队列达到最大长度后如何处理新消息:
drop-head:丢弃队首最老消息(默认);reject-publish:拒绝生产者新消息,返回报错。
4. Max length(队列最大消息数 x-max-length)
限制队列最多存放多少条消息,超出触发溢出策略,防止消息无限堆积撑爆磁盘。
5. Max length bytes(队列最大字节 x-max-length-bytes)
限制队列总占用磁盘大小,超出同样触发溢出策略。
6. Single active consumer(单一活跃消费者 x-single-active-consumer)
开启后:队列同时只允许1个消费者处理消息,其他消费者挂起等待;
- 核心用途:强制同队列严格顺序消费,多实例部署也不会并发乱序。
7. Dead letter exchange(死信交换机 DLX x-dead-letter-exchange)
填写交换机名称,消息满足以下条件会转发到该交换机:
- 消息TTL超时;
- 消费者主动 NACK 且不重回队列;
- 队列达到最大长度溢出丢弃;
是延迟队列、失败消息重试的核心依赖。
8. Dead letter routing key(死信路由键 x-dead-letter-routing-key)
消息转发到死信交换机时使用的 routing-key,不填默认复用原消息路由键。
9. Leader locator(仲裁队列专用)
仅 quorum 队列生效,控制集群内队列主节点分配策略,单机部署无需配置。
三、底部按钮 Add queue
填写完所有配置后点击,即可在上方列表创建出新队列。
四、结合你截图里 *.x.delay 延迟队列补充说明
页面上大量 enqueue.exchange.数字.x.delay 是TTL延时队列,实现原理:
- 新建这类 delay 队列,配置
Message TTL(对应数字毫秒,如604800000=7天); - 绑定普通交换机作为死信交换机;
- 生产者消息先发到 delay 队列,消息到期后自动通过DLX转发到业务队列,实现延时消费;
- 全部为 classic 持久队列,标有 TTL / DLX / DLK 标识(DLK=死信路由键)。
五、生产环境标准配置参考
普通业务队列
- Virtual host:业务专属vhost
- Type:classic / quorum(集群高可用选quorum)
- Durability:Durable
- Arguments:按需配置 DLX、Max length 防止消息丢失/堆积
延时delay队列(截图同款)
- Durability:Durable
Arguments:
- Message TTL = 延时毫秒
- Dead letter exchange = 业务交换机
- Dead letter routing key = 目标业务队列绑定键
版权属于:Joyber
本文链接:https://blog.qqvbc.com/default/1490.html
转载时须注明出处及本声明