开发者社区 > 云原生 > 消息队列 > 正文

5.0.5的SDK怎么打开消息轨迹?rocketmq-client-java客户端怎么开启消息轨迹?

5.0.5的SDK怎么打开消息轨迹?rocketmq-client-java客户端怎么开启消息轨迹,谁知道么?

展开
收起
真的很搞笑 2023-05-16 18:03:21 110 0
3 条回答
写回答
取消 提交回答
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    可以通过在代码中设置以下属性来启用消息轨迹:

    消息生产者:

    producer.setTraceOn(true);
    

    消息消费者:

    consumer.setTraceOn(true);
    

    消息轨迹将在相关事件发生时记录到名称类似于“RMQ_SYS_TRACE_TOPIC”(消息轨迹主题)的专门主题中。您可以使用以下命令查看消息轨迹:

    ./mqadmin queryTrace -n <namesrvAddr> -i <traceId>
    

    其中,<namesrvAddr>为阿里云MQ的Name Server地址,<traceId>为要查询的消息轨迹ID。

    2023-05-23 14:27:02
    赞同 展开评论 打赏
  • 值得去的地方都没有捷径

    在RocketMQ 4.5.0及以上版本中,RocketMQ提供了消息轨迹追踪功能。该功能需要在RocketMQ生产者和消费者客户端中进行相应的配置。

    对于Java客户端,需要将RocketMQ客户端的sdk版本升级到4.5.0及以上版本,并在代码中进行如下配置:

    // 初始化消息轨迹跟踪配置 TransactionMQProducer producer = new TransactionMQProducer("test_producer_group"); producer.setNamesrvAddr("127.0.0.1:9876");

    // 开启消息轨迹跟踪 producer.setTraceTopic("RMQ_SYS_TRACE_TOPIC"); // 设置消息轨迹Topic producer.setTraceDispatcher(new MqtraceTraceDispatcher()); // 设置消息轨迹跟踪分发器 producer.start();

    // 发送消息 Message message = new Message("test_topic", "test_tag", "Hello RocketMQ".getBytes(StandardCharsets.UTF_8)); SendResult sendResult = producer.send(message); 在消费者端,也需要进行相应的配置:

    // 初始化消息轨迹跟踪配置 DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("test_consumer_group"); consumer.setNamesrvAddr("127.0.0.1:9876");

    // 开启消息轨迹跟踪 consumer.setTraceTopic("RMQ_SYS_TRACE_TOPIC"); // 设置消息轨迹Topic consumer.setTraceDispatcher(new MqtraceTraceDispatcher()); // 设置消息轨迹跟踪分发器 consumer.start();

    // 订阅消息 consumer.subscribe("test_topic", "*");

    // 注册消息监听器 consumer.registerMessageListener(new MessageListenerConcurrently() { @Override public ConsumeConcurrentlyStatus consumeMessage(List msgs, ConsumeConcurrentlyContext context) { System.out.printf("Consume Thread: %s, Receive New Messages: %s %n", Thread.currentThread().getName(), msgs); return ConsumeConcurrentlyStatus.CONSUME_SUCCESS; } }); 以上代码示例中的MqtraceTraceDispatcher是RocketMQ提供的默认消息轨迹跟踪分发器实现。

    在消息轨迹开启后,RocketMQ会自动将相关的消息轨迹信息存储到指定的消息轨迹Topic中,用户可以通过相关的工具进行轨迹数据的查看和分析。

    2023-05-22 10:35:24
    赞同 展开评论 打赏
  • 云端行者觅知音, 技术前沿我独行。 前言探索无边界, 阿里风光引我情。

    在RocketMQ 5.0.5版本中,可以通过在Producer或Consumer的配置中开启消息轨迹功能。消息轨迹功能可以记录消息在RocketMQ中的生命周期,包括消息发送、存储、消费等过程,方便用户进行消息追踪和排查问题。

    在Producer中,可以通过设置TraceTopic参数来开启消息轨迹功能。在Consumer中,可以通过设置enableMsgTrace参数来开启消息轨迹功能。

    开启消息轨迹功能会对RocketMQ的性能产生一定的影响,因此建议在需要排查问题时才开启该功能。另外,需要确保RMQ_SYS_TRACE_TOPIC主题已经创建,否则消息轨迹功能将无法正常工作。

    2023-05-16 19:55:31
    赞同 展开评论 打赏

多个子产品线联合打造金融级高可用消息服务以及对物联网的原生支持,覆盖多行业。

相关产品

  • 云消息队列 MQ
  • 相关电子书

    更多
    RocketMQ Client-GO 介绍 立即下载
    RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载
    基于 RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载