You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot 3.1.0中Kafka消费日志缺失Request ID问题求助

解决方案

1. 开启Kafka消息的追踪上下文传递

在现有Spring Kafka配置中,为生产者和消费者添加追踪传递开关,无需修改业务代码:

spring:
  kafka:
    producer:
      properties:
        # 保留原有生产者配置,新增以下属性
        micrometer.tracing.propagation.enabled: true
    consumer:
      properties:
        # 保留原有消费者配置,新增以下属性
        micrometer.tracing.propagation.enabled: true

2. 对齐日志格式与TraceId

确保你的日志配置(如Logback的logback-spring.xml)中,RequestID对应的是MDC中的traceId(micrometer tracing默认的链路追踪ID键)。示例日志pattern片段:

<!-- 替换原有RequestID相关的占位符 -->
[%d{yyyy-MM-dd HH:mm:ss.SSS}] [RequestID:[%X{traceId}]] [%thread] %-5level %logger{36} - %msg%n

如果当前日志配置中已经使用%X{RequestID},可以通过自定义ObservationFilter将traceId复制到MDC的RequestID键,但推荐直接使用traceId键以减少额外代码。

3. 验证效果

重启服务后,生产端发送消息时,micrometer会自动将traceId写入Kafka消息的headers中;消费端接收到消息时,会自动从headers提取traceId并放入MDC,此时消费端日志就能显示对应的Request ID了。


内容的提问来源于stack exchange,提问作者Anurator

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 16:47:10