创建 Queue

最近更新时间:2025-08-26 14:59:12

我的收藏
队列(Queue)用于存储消息,每个消息都会被投入到一个或多个 Queue 里,Producer 生产消息并最终投递到 Queue 中,Consumer 可以从 Queue 中拉取消息进行消费。
多个 Consumer 可以订阅同一个 Queue,这时 Queue 中的消息会被平均分摊给多个 Consumer 进行处理,而不是每个 Consumer 都收到所有的消息并处理。
TDMQ RabbitMQ 版支持在控制台上创建普通队列或 Quorum 队列,本文主要介绍创建普通队列的操作步骤,创建 Quorum 队列的操作步骤请参考配置仲裁队列
普通队列(Classic Queue):采用轻量级索引与共享存储架构,在单机性能与存储效率间取得平衡,适用于高吞吐非强一致性场景。
仲裁队列(Quorum Queue):基于 Raft 协议实现多副本强一致性,保障关键业务数据不丢失,适用于金融交易、订单管理等关键业务。

约束与限制

限制类型
开源托管版
Serverless 版
数量
一个 Vhost 下最多支持创建 1000个 Queue。
一个 Vhost 下最多支持创建 100个 Queue。
默认 Queue
Vhost 创建后会创建一个名为 tdmq_event_handle 的默认 Queue,用于事件查询功能,不支持编辑或者被删除,也不支持新增绑定关系,默认与名为 amq.rabbitmq.event 的默认 Exchange 绑定。
无默认 Queue。
控制台支持创建的队列类型
支持创建普通队列或 Quorum 队列。
仅支持创建普通队列。

前提条件

已创建好对应的 Vhost,具体操作步骤请参考 创建 Vhost

操作步骤

开源托管版
Serverless 版
2. 在左侧导航栏选择集群管理 > Queue,选择 Vhost 后,单击新建进入创建 Queue 页面。
3. 根据页面提示完成 Queue 信息设置后,单击提交,完成 Queue 创建。
分类
参数
是否必选
说明
基本信息
当前 Vhost
表示正在给哪个 Vhost 创建 Queue。
Queue 名称
填写 Queue 名称,需符合命名规则:1-64个字符,只能包含字母、数字、“-”及“_”。
Queue 创建成功后,不支持修改名称。
类型
选择普通队列
Durable
设置 Queue 是否执行持久化,默认开启。
如果设置为 true,该 Queue 在服务重启后仍然存在。
如果设置为 false,该 Queue 在服务重启后会被删除,需要重建。
节点
在下拉框中选择 Queue 所在的集群节点。
AutoDelete
是否开启自动删除 Queue,默认关闭。
如果设置为 true,当订阅该 Queue 消息的最后一个消费者取消订阅后,该 Queue 将被自动删除。
如果设置为 false,当订阅该 Queue 消息的最后一个消费者取消订阅后,不会删除该 Queue。
Queue 说明
填写 Queue 的说明信息,最多128个字符。
常用参数
Message TTL
消息在 Queue 中的存活时间,单位为 ms。若超过 TTL 后,消息还未被成功消费,则:
如果指定了死信 Exchange,消息会被发送到死信 Exchange。
如果没有指定死信 Exchange,消息就会被丢弃。
Auto Expire
Queue 的空闲存活时间,当 Queue 在指定时间内没有消费者连接、没有消息被消费或发布,会被自动删除。
Max Length
Queue 可以容纳的消息数量上限,超过设定值后将触发 Overflow behaviour 溢出策略。
Max Length Bytes
Queue 的存储容量上限,超过设定值后将触发 Overflow behaviour 溢出策略。
Overflow Behaviour
当 Queue 容量达到上限时,队列的消息处理策略:
drop-head:当队列达到容量上限时,丢弃队列头部的消息。
reject-publish:当队列达到容量上限时,拒绝新消息的发布,并将发布操作标记为失败。
reject-publish-dlx:当队列达到容量上限时,拒绝新消息的发布,并将消息发送到死信交换机(Dead Letter Exchange,DLX),若未配置死信 Exchange,将自动指定名为 AMQP default exchange 的默认 Exchange。
死信 Exchange
消息超过 TTL 时间没有被成功消费,将被投递到死信 Exchange,默认指定名为 AMQP default exchange 的默认 Exchange。
其他高级选项
Single Active Consumer
是否开启单一活跃消费者,默认关闭。
若设置为 true,Queue 同一时间只允许一个消费者消费消息,其他消费者会处于待命状态,当活跃消费者断开后,会自动选择下一个消费者。适用于顺序敏感型任务,如订单状态变更等场景。
Maximum Priority
配置该队列中的消息的最大优先级,可选范围:[0,255],值越大,排序开销越高。
配置该参数后将启用优先级功能,生产者发送消息时通过 priority 属性指定优先级(0到 Maximum Priority 之间)。高优先级消息会优先被消费,未设置优先级的消息默认为 0。适用于 VIP 客户订单优先处理、紧急任务插队等场景。
Lazy Mode
是否开启惰性模式,默认关闭。
若设置为 true,队列会优先将推送过来的消息保存在磁盘上以减少内存占用,消费时才加载到内存。适用于消息积压严重的队列,如死信队列。
若设置为 false,消息默认存储在内存中。
Master Locator
当配置了镜像队列时,master 所在节点的分配方式。
min-masters(默认):当配置了镜像队列时,选择托管队列 master 数量最少的节点,作为当前队列的 master 所在的节点。生产环境建议保持默认 min-masters 以实现负载均衡。
client-local:当配置了镜像队列时,选择声明队列的客户端所连接到的节点,作为当前队列的 master 所在的节点。
random:当配置了镜像队列时,选择一个随机节点作为当前队列的 master 所在的节点。

2. 在左侧导航栏选择集群管理 > Queue,选择 Vhost 后,单击新建进入创建 Queue 页面。
3. 填写 Queue 基本信息后,单击提交,完成 Queue 创建。
参数
是否必选
说明
当前 Vhost
表示正在给哪个 Vhost 创建 Queue。
Queue 名称
填写 Queue 名称,需符合命名规则:1-64个字符,只能包含字母、数字、“-”及“_”。
Queue 创建成功后,不支持修改名称。
类型
仅支持普通队列
Message TTL
消息在 Queue 中的存活时间,单位为 ms。若超过 TTL 后,消息还未被成功消费,则:
如果指定了死信 Exchange,消息会被发送到死信 Exchange。
如果没有指定死信 Exchange,消息就会被丢弃。
死信 Exchange
消息超过 TTL 时间没有被成功消费,将被投递到死信 Exchange。
Queue 说明
填写 Queue 说明信息,最多 128 个字符。