全部产品
Search
文档中心

云消息队列 RabbitMQ 版:Queue管理

更新时间:Jul 09, 2026

Queue是指消息队列,云消息队列 RabbitMQ 版的消息都会被投入到一个或多个Queue中。本文介绍如何在云消息队列 RabbitMQ 版控制台创建消息的存储资源Queue、查看Dashboard大盘、被Exchange绑定、向指定Queue发送消息、查看Consumer Tag、清空Queue和删除Queue。

背景信息

Consumer Tag是Consumer客户端的标识符。您可以在云消息队列 RabbitMQ 版的Consumer客户端设置Consumer Tag。如果您没有在云消息队列 RabbitMQ 版的Consumer客户端设置Consumer Tag,云消息队列 RabbitMQ 版服务端会为您自动生成一个唯一的Consumer Tag。建议使用系统默认Consumer Tag,不自定义设置Consumer Tag。

重要
  • Consumer Tag必须保持唯一,即已被某个Consumer使用的Consumer Tag不可同时被另一个Consumer使用。

  • 客户端使用的SDK在记录连接上有哪些消费者时,采用Map<String, Consumer>进行记录,其中Key为Consumer Tag。如果一个连接上存在多个消费者具有相同的Consumer Tag,在连接自动重连后,该连接下的相同Consumer Tag仅会有一个消费者恢复消费,其他消费者将不会自动恢复。

创建Queue

  1. 登录云消息队列 RabbitMQ 版控制台,然后在左侧导航栏选择实例列表

  2. 实例列表页面的顶部菜单栏选择地域,然后在实例列表中,单击目标实例名称。

  3. 在左侧导航栏,单击Queue 列表

  4. Queue 列表页面,在当前 Vhost右侧的切换下拉列表中,选择Vhost,单击创建 Queue

  5. 创建 Queue面板,配置以下参数,然后单击确定

    参数

    描述

    说明

    Queue 名称

    Queue的名称

    • 只能包含字母、数字、短划线(-)、下划线(_)、半角句号(.)、井号(#)、正斜线(/)、at符号(@)。

    • 长度限制在1~255字符。

    • 创建后无法修改,只能删除重建。

    • 以amq.开头的为保留字段,因此不能使用。例如:amq.test。

    Auto Delete

    最后一个Consumer取消订阅后,Queue是否自动删除。

    • true:在订阅该Queue消息的最后一个Consumer取消订阅该Queue的消息后,自动删除该Queue。

    • false:在订阅该Queue消息的最后一个Consumer取消订阅该Queue的消息后,不自动删除该Queue。

    重试策略

    配置Queue重试策略。各实例策略参数取值,请参见实例重试策略参数说明

    • 是否继承实例配置

      • :继承实例默认配置。

      • :自定义配置。

    • 最大投递次数:系统将一条消息尝试投递给消费者的最大次数限制。单位:次。

    • 消费超时时间:消费者在接收和处理消息时允许的最大时间限制。单位:秒。

    死信策略

    Queue的参数设置,可用于设置死信Exchange、死信Routing Key和消息存活时间。

    • DeadLetterExchange:指定死信消息发送的目标Exchange。

    • DeadLetterRoutingKey:指定死信消息的Routing Key,即死信Exchange会将消息发送至匹配该死信Routing Key所对应的Queue。

    • MessageTTL:消息存活时间,单位毫秒(ms)。在指定时间内未被成功消费的消息会变成死信消息,该消息将会被发送到死信Exchange。更多信息,请参见消息存活时间

常见问题

能否指定特定客户端消费消息?

目前不支持指定特定客户端消费消息。消息分发遵循 RabbitMQ 标准机制,按轮询(Round-Robin)或优先级(Priority)策略在各 Consumer 客户端间分配,无法将消息固定发送给特定客户端。

如何通过代码创建顺序队列(x-single-active-consumer)?

控制台暂不支持配置 x-single-active-consumer 参数,需通过 SDK 代码创建顺序队列。创建时,使用 channel.queueDeclare 方法,并在 arguments 参数中设置 "x-single-active-consumer": true。示例如下:

Map<String, Object> arguments = new HashMap<>();
arguments.put("x-single-active-consumer", true);
channel.queueDeclare("your-queue-name", true, false, false, arguments);

为什么代码自动创建队列失败(Failed to declare queue)?

云消息队列 RabbitMQ 版不支持通过代码自动创建队列(Auto-create)。使用队列前,必须先在控制台或通过 API 手动创建 Queue,再在代码中使用 channel.queueDeclare 绑定已有的 Queue,否则将报错 Failed to declare queue。

Queue 最大限制个数调整

如果实例可创建的 Queue 数量已达到上限,可根据实例类型通过以下方式调整:

  • 企业版专业版铂金版实例:在实例详情页或实例列表的操作区,单击升配,前往购买页面完成升配。

  • (共享)按累积量(共享)预留+弹性(独享)预留+弹性实例:在实例详情页右上角,单击修改配额,调整 Queue 数量上限。

各实例类型可支持的 Queue 数量上限,请参见使用限制中、集群限制下的「单实例可创建的 Queue 数量」。

查看统计数据

您可以查看各种指标数据,帮助您及时发现和定位问题。

  1. Queue 列表页面,选择指定Queue,在其操作列单击详情

  2. Queue 详情页面单击监控指标Dashboard页签。

    实例类型不同,统计数据不同。具体如下:

    • 企业版和铂金版:支持查看基于阿里云ARMS Prometheus监控服务和Grafana的指标信息。关于Dashboard详细信息和指标信息,请参见Dashboard

    • 普通版/专业版:通过云监控提供指标监控数据。关于云监控的详细信息和指标信息,请参见监控指标

      说明

      云消息队列 RabbitMQ 版不再支持开通新的普通版实例,此处指存量的普通版实例。

查看Consumer Tag

重要

云消息队列 RabbitMQ 版仅支持查看在线Consumer客户端的Consumer Tag,不支持查看离线Consumer客户端的Consumer Tag,您需要确保要查看Consumer Tag的Consumer客户端处于在线状态。

Queue 列表页面,选择指定Queue,在其操作列,选择更多 > Consumer Tag 列表

被Exchange绑定

  1. Queue 列表页面,选择指定Queue,在其操作列单击详情

  2. Queue 详情页面单击被绑定信息页签,单击添加被绑定

  3. 添加被绑定面板,选择源Exchange,在Routing Key文本框输入Routing Key,然后单击确定

    说明

    若被绑定的Exchange的类型为x-consistent-hash时,Routing Key表示绑定的Queue的权重,只能设置为整数,取值范围为[1~20]。

发送消息

Queue添加被绑定关系后,可直接在控制台发送消息,将消息从源Exchange发送到指定的Queue中。

  1. Queue 列表页面,选择指定Queue,在其操作列单击详情

  2. Queue 详情页面,选择被绑定信息页签。

  3. 在被绑定关系列表中,选择指定的绑定关系,在其操作列单击发送消息

  4. 在弹出的发送消息面板中输入messageIdmessageBody,然后单击确定

重要

当使用默认 Exchange(exchange 为空)发送消息时,Routing Key 必须与已存在的 Queue 名称完全一致;同时,客户端账号需拥有对该 Queue 的写权限。若 Queue 不存在或权限不足,消息将被丢弃,且控制台无发送记录。

清空Queue

Queue 列表页面,选择指定Queue,在其操作列,选择更多 > 清空消息

删除Queue

警告

删除Queue时,Queue中未被消费的消息会被同时删除,且不可恢复。请您谨慎操作。

  1. Queue 列表页面,根据需要选择如下任意一种方式删除Queue。

    • 删除单个Queue:找到要删除的Queue,在其右侧操作列,选择更多 > 删除

      您也可以单击目标Queue,或在其右侧操作列,单击详情,在Queue 详情页面右上角单击删除

    • 删除多个Queue:选中要删除的Queue,单击Queue列表下方的批量删除

  2. 提示对话框,认真阅读提示信息,单击确认