介绍 rocketmq 消息跟踪功能
前言
消息跟踪,可以跟踪消息由哪个 client 产生,保存在哪个 broker , 是否被消费以及由哪个 client 消费等一系统消息的属性。 这个功能可以方便消息的调试的故障排查。
示例
producer 打开消息跟踪的方法
1 |
|
consumer 打开消息跟踪的方法
1 |
|
消息跟踪会用消息的形式保存到 RMQ_SYS_TRACE_TOPIC 这个 topic, 可以用 console 查看,也可以自行解析 topic 里的消息查看。
实现
producer 消息跟踪
当传入的 enableMsgTrace 参数为 true 时,注册一个 message hook, 进行消息跟踪
1 |
|
SendMessageTraceHookImpl 获取产生的消息的信息,然后通过 AsyncTraceDispatcher 发送到 RMQ_SYS_TRACE_TOPIC
1 |
|
consumer 消息跟踪
当传入的 enableMsgTrace 参数为 true 时,注册一个 message hook, 进行消息跟踪
1 |
|
AsyncTraceDispatcher
写跟踪消息
1 | public class AsyncTraceDispatcher implements TraceDispatcher { |