参考答案
RocketMQ 默认提供了消息轨迹的功能:
1 RocketMQ消息轨迹数据的关键属性
Producer端 | Consumer端 | Broker端 |
---|---|---|
生产实例信息 | 消费实例信息 | 消息的Topic |
发送消息时间 | 投递时间,投递轮次 | 消息存储位置 |
消息是否发送成功 | 消息是否消费成功 | 消息的Key值 |
发送耗时 | 消费耗时 | 消息的Tag值 |
2 消息轨迹配置
打开消息轨迹功能,在 broker.conf 中打开一个关键配置: traceTopicEnable=true ,这个配置的默认值是 false,即默认是关闭的。
3 消息轨迹数据存储
默认情况下,消息轨迹数据是存于一个系统级别的 Topic ,RMQ_SYS_TRACE_TOPIC。
这个Topic 在 Broker 节点启动时,会自动创建出来。
另外,也支持客户端自定义轨迹数据存储的 Topic 。
客户端的两个核心对象 DefaultMQProducer 和 DefaultMQPushConsumer ,它们的构造函数中,都有两个可选的参数打开消息轨迹存储。
- enableMsgTrace:是否打开消息轨迹(默认是 false )。
- customizedTraceTopic:配置将消息轨迹数据存储到用户指定的 Topic 。
以上,是消息队列 RocketMQ 面试题【RocketMQ 的消息轨迹】的参考答案。
输出,是最好的学习方法。
欢迎在评论区留下你的问题、笔记或知识点补充~
—end—