消息查询与轨迹

最近更新时间: 2024-06-12 15:06:00

当一条消息从生产者发送到 TDMQ 服务端,再由消费者进行消费,TDMQ 会完整记录这条消息中间的流转过程,并以消息轨迹的形式呈现在控制台。 消息轨迹记录了消息从生产端到 TDMQ 服务端,最后到消费端的整个过程,包括各阶段的时间(精确到微秒)、执行结果、生产者 IP、消费者 IP 等。

操作场景

当您需要排查以下问题时,就可以使用 TDMQ 控制台的消息查询功能,按照时间维度或者根据日志中查到的消息 ID,来查看具体某条消息的消息内容、消息参数和消息轨迹。

  • 查看某条消息的具体内容,具体参数。

  • 查看消息由哪个生产 IP 发送,是否发送成功,消息到服务端的具体时间。

  • 查看消息是否已持久化。

  • 查看消费由哪些消费者消费了,是否消费成功,消息确认消费的具体时间。

  • 需要做分布式系统的性能分析,查看 MQ 对相关消息处理的时延。

查询限制

  • 消息查询最多可以查询近7天的消息。

  • 一次性最多可以查询10000条消息。

前提条件

已经参考【SDK 文档】部署好生产端和消费端服务,并在7天内有消息生产和消费。

操作步骤

  1. 登录 TDMQ 控制台,在左侧导航栏单击【消息查询】。

  2. 在消息查询页面,首先选择地域和环境,再选择需要查询的时间范围,如果您知道对应的消息 ID,也可以输入消息 ID 进行精准查询。

  3. 单击【查询】,下方列表会展示所有查询到的结果并分页展示。

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

  5. 单击操作列的【查看消息轨迹】,或者在详情页单击 Tab 栏的【消息轨迹】,即可查看该消息的消息轨迹(详细说明请参考消息轨迹查询结果说明)。

消息轨迹查询结果说明

消息轨迹查询出来的结果分为三段:消息生产、消息存储和消息消费。

消息生产

参数 说明
生产地址 对应生产者的地址以及端口。
生产时间 TDMQ 服务端确认接收到消息的时间,精确到毫秒。
发送耗时 消息从生产端发送到 TDMQ 服务端的时间消耗,精确到微秒。
生产状态 表示消息生产成功或失败,如果状态为失败一般是消息在发送过程中遇到了头部数据部分丢失,以上几个字段可能会为空值。

消息存储

参数 说明
存储时间 消息被持久化的时间(由于当前 TDMQ 统一为强一致模式,消息持久化后才会被确认,所以该时间与生产时间一致,高性能模式下此时间会与生产时间不一致)。
存储状态 表示消息持久化成功或失败,如果状态为失败则表明消息未落盘成功,可能由于底层磁盘损坏或无多余容量导致,遇见此类情况需尽快提工单咨询。

消息消费

消息消费是以列表形式呈现的。TDMQ 支持多订阅模式,一条消息可能会被多个订阅中的多个消费者消费。 列表中展示的信息说明:

参数 说明
消费组名称 即订阅名称。
消费地址 收到消息的消费者地址及端口。
消费时间 消费者回复确认信息(ACK)到 TDMQ 服务端,服务端接收到确认信息的时间。
消费耗时 消息从服务端投递到消费者,直到服务端收到消费者的确认信息(ACK)经过的时长,精确到微秒。
消费状态 消费者消费成功或者失败,消费者如果返回了取消确认的信息(NACK),这个字段会显示失败。