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

如何通过Kafka在微服务间传递Spring Sleuth的traceId与spanId

Spring Sleuth 传递Trace/Span ID到Kafka消息头的配置方案

Spring Sleuth原生支持通过配置自动将traceId和spanId注入Kafka消息头,以此保证跨微服务的请求链路追踪一致性,核心配置和说明如下:

  • 依赖前提:确保项目引入spring-cloud-starter-sleuth和spring-kafka(或spring-cloud-starter-stream-kafka),Sleuth会自动适配Kafka的生产者与消费者组件。

  • 关键配置属性:

    • 生产者端:默认已自动将X-B3-TraceId、X-B3-SpanId、X-B3-ParentSpanId等B3规范的链路标识写入Kafka消息头,可通过以下配置确认或调整:
      # 开启Sleuth对Kafka的支持(默认值为true,可省略)
      spring.sleuth.messaging.kafka.enabled=true
      # 指定链路传递格式(默认是B3规范,如需其他格式可修改,比如W3C)
      # spring.sleuth.propagation.type=B3
      
    • 消费者端:默认会自动从Kafka消息头提取链路标识,恢复上下文并延续链路追踪,相关配置:
      # 开启消费者端链路上下文恢复(默认值为true,可省略)
      spring.sleuth.messaging.kafka.enabled=true
      
  • 验证方法:发送消息后,可通过Kafka工具查看消息头是否包含X-B3-TraceId等字段,或在消费者服务的日志中确认traceId与生产者端一致。

如果需要自定义消息头格式或传递额外链路信息,可通过实现MessagePostProcessor(生产者端)或ConsumerInterceptor(消费者端)扩展,但绝大多数场景下默认配置即可满足需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 15:00:45