全部产品
阿里云办公

查询消息轨迹

更新时间:2018-08-20 14:29:33

消息轨迹的使用不会增加额外的接入成本,仅仅需要确保客户端 SDK 版本支持该特性。 正常收发消息后,根据消息的属性在 MQ 控制台上查询即可。

接入条件

消息轨迹功能目前支持 Java 客户端(1.2.7 版本及以上),C++ 和 .NET 客户端。 详细的客户端信息,请参考控制台给出的升级提示,获取最新的 SDK。

创建轨迹查询任务

在 MQ 控制台左侧菜单栏选择消息轨迹,然后单击右上角创建查询任务按钮。

消息轨迹查询功能支持三种查询方式。请选择一种查询方式,然后指定相应的查询条件进行查询。 关于三种查询方式的具体说明如下:

  • 按 Message ID 查询:需要输入消息的唯一 Message ID,Topic 名称以及消息的大致发送时间(一个时间范围)。
  • 按 Message Key 查询:需要输入消息的 Message Key 和 Topic 以及大致发送时间(一个时间范围)。该方式适用于没有记录 Message ID,但记录了 Message Key 的场景。
  • 按 Topic 查询:仅需要输入 Topic 和消息大致发送时间(一个时间范围),进行批量查询。该方式适用于没有上述 Message ID 和 Message Key,而且消息量比较小的场景。

注意:

  • 查询时,尽可能设置最为精确的时间区间,以便缩小查询范围,提高速度。
  • 按 Message ID 查询属于精确查询,速度快,精确匹配,推荐使用。
  • 按 Message Key 查询属于模糊查询,仅适用于您没有记录 Message ID 但是设置了 Message Key,同时 Message Key 具有区分度的情况。按 Message Key 查询最多查询 1000 条轨迹。
  • 按 Topic 查询属于范围查询,不推荐使用,因为时间范围内消息很多,不具备区分度。

管理查询任务

您创建查询任务后,MQ 后台会异步执行这个查询任务,并将任务状态反馈到查询任务页面。 查询结束时,任务状态会显示查询完成,否则显示查询中

您可以根据任务的状态可以选择查看轨迹,或者删除查询任务。

查看轨迹

完成查询后,单击详情可查看消息轨迹。 如果发现没有结果,请参考弹窗中的链接,排查原因。

如果查询到轨迹信息,可以看到轨迹的简要信息,主要是消息本身的属性以及接收状态的信息。

查看轨迹链路图

单击查看轨迹即可查看完整的链路图。

消息链路图包含3个部分:

  • 生产者信息
  • Topic 信息
  • 消费者信息

对于 Message Key 和 Topic 查询方式,如果匹配到多条轨迹,可以进行上下翻页,查看比对轨迹数据。

消息轨迹名词解释

消息轨迹查询页面中涉及到的名词概念如下。

相关概念 含义(TCP 场景)
发送时间 记录消息从发送端发送时的客户端时间戳
发送耗时 记录发送端调用 send 方法发送消息的毫秒耗时
Region 记录消息存储的 Region 信息,或者消费方机器所在的 Region 信息
(消费)耗时 记录消息推送到客户端之后执行 consumeMessage 方法的耗时
投递时间 记录客户端执行 consumeMessage 方法开始消费消息时的时间戳

状态信息说明

消息轨迹查询页面中涉及到的状态列表如下。

状态 含义(TCP 场景)
发送成功 消息发送成功,服务端已经存储成功
发送失败 消息发送失败,服务端没有存储消息,需要重试
消息定时中 该消息是定时或者延时消息,且尚未到达投递时间
事务未提交 该消息是事务消息,且尚未提交状态
事务回滚 该消息是事务消息,并且已经回滚
全部成功 该消息所有投递都已成功消费
部分成功 该消息投递中存在消费失败的情况,或消费失败并重试成功的情况
尚未消费 该消息尚未投递给任何消费方
消费结果未返回 消费消息的方法尚未返回结果,或者被中断,导致本次消费结果未传回服务端
消费失败 消费消息的方法主动返回失败标志,或者是消费方法抛异常

如果对消息轨迹的查询结果有疑问,请查看《常见问题》中的消息轨迹一节。