操作场景
如果消息收发异常或有遗漏等问题,您可以使用 TDMQ RabbitMQ 版控制台的消息查询功能,查看指定 Vhost 和 Queue 的消息内容和消息轨迹,便于分析和定位问题。
使用说明
根据集群类型的不同,消息查询功能的限制条件和查询方式有些差异,您可以点击如下页签查看相应的说明。
前提条件
需要进行消息查询的 Vhost 已打开 Trace 插件 开关。

实现原理概述
在打开 Vhost 的 Trace 插件后,服务组件会消费对应 RabbitMQ 集群的轨迹消息,通过处理后可实现控制台查询消息轨迹的功能。
使用限制
消息轨迹依赖于服务组件消费轨迹消息,又因为服务组件为底层公共服务,无法保证大流量的 RabbitMQ 集群的轨迹消息可以被及时消费。如果轨迹消息堆积,会造成集群内存负载高等问题,从而影响 RabbitMQ 集群稳定性。
因此,不建议在生产环境尤其在整体集群(包括所有 Vhost)发送 TPS 超过 10000 的场景下开启 Trace 插件,Trace 插件建议使用在小流量验证/排查场景。
注意:
消息查询仅支持查询大小为 512KB 以下的消息。
不同的查询方式以及限制如下表所示,建议使用推荐的查询方式,能够查询到更准确的结果。
查询方式 | 示例 | 限制 |
仅按时间范围 + 队列查询 | ![]() | 在选择的队列及时间范围内,按入队列的顺序查询到最多1000条消息。 |
按 Routing Key 查询 (推荐) | ![]() | 在选择的队列及时间范围内,按 Routing Key 查询最多1000条消息。 |
按 Routing Key,以及 用户/headers/body 查询 | ![]() | 在选择的队列及时间范围内,按 Routing Key 查询到最多1000条消息,再根据用户/headers/body 进行筛选,最终查询到的消息总数将小于等于1000条。 |
仅根据时间范围 + 队列,不填 Routing Key,并筛选 用户/headers/body (不推荐) | ![]() | 在选择的队列及时间范围内,按入队列的顺序查询到最多1000条消息,再根据 用户 / headers / body 进行筛选,最终查询到的消息总数将小于等于1000条。 |
操作步骤
1. 登录 TDMQ RabbitMQ 版控制台。
2. 在左侧导航栏选择 消息查询,选择好地域和需要查询的时间范围。
3. 选择需要查询的集群、Vhost、Queue 和时间范围,可以填写 Routing Key、用户、消息的 headers 和 body,进一步缩小查询范围。
4. 单击查询,下方列表会展示查询到的所有结果。

5. 找到您希望查看内容或详细信息的消息,单击操作列的查看消息详情,即可查看消息的详细信息以及内容(消息体)。

使用限制
Serverless 版的消息保留时间默认为3天,因此最多仅支持查询近3天内的消息。
操作步骤
1. 登录 TDMQ RabbitMQ 版控制台。
2. 在左侧导航栏选择 消息查询,选择好地域,设置需要查询的集群、Vhost、Queue 和时间范围,也可以填消息 ID,进一步缩小查询范围。
3. 单击查询,下方列表会展示查询到的所有结果。

4. 找到您希望查看内容或详细信息的消息,单击操作列的查看消息详情,即可查看消息的详细信息以及内容(消息体)。
