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

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

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

展开
收起
真的很搞笑 2023-05-16 18:03:21 158 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
    赞同 展开评论 打赏

涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/

相关产品

  • 云消息队列 MQ
  • 热门讨论

    热门文章

    相关电子书

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