消息队列 RocketMQ 版 消息轨迹与说明

消息轨迹记录了消息从生产端到 TDMQ RocketMQ 版服务端,最后到消费端的整个过程,包括各阶段的时间(精确到微秒)、执行结果、生产者 IP、消费者 IP 等。

相关产品
消息队列 RocketMQ 版 产品页,含版本规格、价格与购买入口。

一、前提条件

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

·如果你使用的是 5.0 及以上版本的 gRPC 客户端进行消息的生产和消费,则无需在客户端另行开启轨迹开关。

·如果你使用的是 4.x 版本的客户端,或者 5.0 以上版本的 Remoting 客户端,则需要在客户端设置开启消息轨迹功能,具体设置示例如下:

·更多关于客户端的说明请参见 社区客户端说明。

生产者设置Push 消费者设置Pull 消费者设置Spring Boot Starter 接入(2.2.2版本及以上)DefaultMQProducer producer = new DefaultMQProducer(namespace, groupName, // ACL权限 new AclClientRPCHook(new SessionCredentials(AK, SK)), true, null);// 实例化消费者DefaultMQPushConsumer pushConsumer = new DefaultMQPushConsumer(NAMESPACE,groupName, new AclClientRPCHook(new SessionCredentials(AK, SK)), new AllocateMessageQueueAveragely(), true, null);DefaultLitePullConsumer pullConsumer = new DefaultLitePullConsumer(NAMESPACE,groupName, new AclClientRPCHook(new SessionCredentials(AK, SK)));// 设置NameServer的地址pullConsumer.setNamesrvAddr(NAMESERVER);pullConsumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_LAST_OFFSET);pullConsumer.setAutoCommit(false);pullConsumer.setEnableMsgTrace(true);pullConsumer.setCustomizedTraceTopic(null);package com.lazycece.sbac.rocketmq.messagemodel;import lombok.extern.slf4j.Slf4j;import org.apache.rocketmq.spring.annotation.MessageModel;import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;import org.apache.rocketmq.spring.core.RocketMQListener;import org.springframework.stereotype.Component;/** * @author lazycece * @date 2019/8/21 */@Slf4j@Componentpublic class MessageModelConsumer {@Component @RocketMQMessageListener( topic = "topic-message-model", consumerGroup = "message-model-consumer-group", enableMsgTrace = true, messageModel = MessageModel.CLUSTERING) public class ConsumerOne implements RocketMQListener<String> { @Override public void onMessage(String message) { log.info("ConsumerOne: {}", message); } }}

二、消息轨迹查询结果说明

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

三、消息生产

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

四、消息存储

参数 说明
存储时间 消息被持久化的时间。
存储状态 表示消息持久化成功或失败,如果状态为失败则表明消息未落盘成功,可能由于底层磁盘损坏或无多余容量导致,遇到此类情况需尽快提交工单咨询。

五、消息消费

消息消费是以列表形式呈现的,TDMQ RocketMQ 版支持集群消费和广播消费两种消费模式。

列表中展示的信息说明:

参数 说明
消费组名称 消费组的名称。
消费模式 消费组的消费模式,支持集群消费和广播消费两种模式。
推送次数 TDMQ RocketMQ 版服务端向消费者投递该消息的次数。
最后推送时间 TDMQ RocketMQ 版服务端最后一次向消费者投递该消息的时间。
消费结束时间 TDMQ RocketMQ 版服务端接收到消费者回复确认信息的时间。
消费耗时 TDMQ RocketMQ 版服务端第一次向消费者投递该消息到接收到消费者回复确认信息的时间。
消费状态 已推送未确认:TDMQ RocketMQ 版服务端已向消费者投递消息,未接收到消费者回复的确认消息。已消费:消费者回复确认信息(ACK)到 TDMQ RocketMQ 版服务端,服务端接收到确认(ACK)信息。转入重试:消费已超时,服务端仍未接收到确认信息,将再次投递消息。已重试未确认:TDMQ RocketMQ 版服务端已再次向消费者投递消息,未接收到消费者回复的确认消息。已转入死信队列:消息经过一定重试次数后仍未能被正常消费,被投递至死信队列。未消费:因为客户的消费超时等原因,消息未消费成功;或因为客户端原因(如广播消费)查询不到消息在重试队列和死信队列中。页面死信重投完成:在死信队列重发页面上,用户已经将死信消息重新投递到原队列的重试队列中。说明:当消费模式为广播模式时,由于广播消费的客户端没有重试机制,因此不会存在 “转入重试”、 “已重试未确认 、“已转入死信队列”消费状态。

单击订阅名称左方的右三角,查看服务端每次推送消息的详情。

参数 说明
推送次序 TDMQ RocketMQ 版服务端第几次向消费者投递该消息,仅在集群消费模式下展示。广播消费不存在严格的推送的顺序,因此不展示推送次序,广播消费的轨迹详情如下:
消费地址 收到消息的消费者地址及端口。
开始消费时间 TDMQ RocketMQ 版服务端向消费者投递该消息的时间。
消费结束时间 TDMQ RocketMQ 版服务端接收到消费者回复确认信息的时间。
消费耗时 TDMQ RocketMQ 版服务端向消费者投递该消息到接收到消费者回复确认信息的时间。
消费状态 每次服务端推送的消息的消费状态,各状态列举和释义同上表中列举。
赞 (0)
上一篇 4天前
下一篇 4天前