消息轨迹是指一条消息从生产者发送到消息队列服务端,再到消费者消费处理,整个过程中的各个相关节点的时间、状态等数据汇聚而成的完整链路信息。本文介绍如何快速查询消息轨迹。
前提条件
您的消息已从生产者发送。
操作步骤
登录 SOFAStack 控制台。
在左侧导航栏,选择 中间件 > 消息队列 > 消息轨迹。
单击 创建查询任务,您可选择以下查询维度,然后按页面提示输入相应信息。
按 Message ID 查询:该方式属于精确查询,速度快,精确匹配,推荐使用。
按 Message Key 查询:该方式属于模糊查询,最多查询 64 条消息轨迹。仅适用于您没有记录 Message ID 但是设置了 Message Key,同时 Message Key 具有区分度的情况。
按 Topic 查询:该方式属于范围查询,适用于没有上述 Message ID 和 Message Key,而且消息量比较小的场景。因为时间范围内消息很多,且不具备区分度。
单击 确定。
创建完成后,即可在消息轨迹页面查看到刚创建的查询任务,且任务状态显示查询中,说明暂不能查看消息轨迹。
在消息轨迹页面,单击 刷新,直到状态切换至查询完成。单击展开图标可查看到轨迹的简要信息,包括消息本身的属性以及接收状态的信息。
单击 查看轨迹 即可查看完整的链路图,如下图所示。
该轨迹图提供了以下角色及相关信息:
生产者:
发送时间:消息从生产者发送时的客户端时间戳。
发送耗时:生产者调用 Send 方法发送消息的毫秒耗时。
发送状态:
发送成功:消息发送成功,服务端已经存储成功。
发送失败:消息发送失败,服务端没有存储消息,需要重试。
消息定时中:该消息是定时或者延时消息,且尚未到达投递时间。
事务未提交:该消息是事务消息,且尚未提交状态。
事务回滚:该消息是事务消息,并且已经回滚。
Topic:
Key:消息的业务标识,由消息生产者设置,唯一标识某个业务逻辑。
Tag:消息标签,二级消息类型,用来进一步区分某个 Topic 下的消息分类。
消费者:
耗时:消息推送到客户端之后执行 consumeMessage 方法的耗时。
投递时间:客户端执行 consumeMessage 方法开始消费消息时的时间戳。
消费状态:
全部成功:该消息的所有投递都已成功消费。
部分成功:该消息投递中存在消费失败的情况,或消费失败并重试成功的情况。
全部失败:该消息的所有投递都消费失败。
尚未消费:该消息尚未投递给任何消费方。
消费结果未返回:消费消息的方法尚未返回结果,或者被中断,导致本次消费结果未传回服务端。
消费成功:该消息已被成功消费。
消费失败:消费消息的方法主动返回失败标志,或者是消费方法抛异常。
如需删除某个查询任务,可在消息轨迹任务列表页找到目标任务,单击其操作列的 删除,按提示完成删除。
单元化说明
在 LDC 单元化架构环境下,您可以选定单元创建消息查询任务,如下图所示。
查询出的消息轨迹图中,您也可以获取到生产者、Topic 与消费者所在的 Zone 信息,如下图所示。