RocketMQ 消息轨迹主要包含两篇文章:设计篇与源码分析篇,本节将详细介绍RocketMQ消息轨迹-设计相关。
RocketMQ消息轨迹,主要跟踪消息发送、消息消费的轨迹,即详细记录消息各个处理环节的日志,从设计上至少需要解决如下三个核心问题:
消费轨迹数据格式记录消息轨迹(消息日志)消息轨迹数据存储在哪?1、消息轨迹数据格式
RocketMQ4.5版本消息轨迹主要记录如下信息:
traceType跟踪类型,可选值:Pub(消息发送)、SubBefore(消息拉取到客户端,执行业务定义的消费逻辑之前)、SubAfter(消费后)。timeStamp当前时间戳。regionIdbroker所在的区域ID,取自BrokerConfig#regionId。groupName组名称,traceType为Pub时为生产者组的名称;如果traceType为subBefore或subAfter时为消费组名称。requestIdtraceType为subBefore、subAfter时使用,消费端的请求Id。topic消息主题。msgId消息唯一ID。tags消息tag。keys消息索引key,根据该key可快速检索消息。storeHost跟踪类型为PUB时为存储该消息的Broker服务器IP;跟踪类型为subBefore、subAfter时为消费者IP。bodyLength消息体的长度。costTime耗时。msgType消息的类型,可选值:Normal_Msg(普通消息),Trans_Msg_Half(预提交消息),Trans_msg_Commit(提交消息),Delay_Msg(延迟消息)。offsetMsgId消息偏移量ID,该ID中包含了broker的ip以及偏移量。success是发送成功。contextCode消费状态码,可选值:SUC