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

Spring Boot 3升级后Spring Cloud Sleuth的Tracer Bean缺失问题咨询

Spring Boot 3升级后Sleuth Tracer Bean缺失问题

问题根源

你使用的spring-cloud-starter-sleuth:3.1.5是适配Spring Boot 2.6/2.7的版本,和Spring Boot 3.x完全不兼容。Spring Boot 3对应的Spring Cloud 2022.0.x版本周期中,Spring Cloud Sleuth已停止主动开发,原有的自动配置逻辑无法正常加载,因此Tracer Bean不会被默认创建。

解决办法

1. 转用OpenTelemetry(官方推荐)

Spring官方已将分布式追踪能力的支持迁移到OpenTelemetry,这是长期维护的方案。先移除Sleuth依赖,替换为OpenTelemetry相关依赖:

// 移除旧的Sleuth依赖
// implementation 'org.springframework.cloud:spring-cloud-starter-sleuth:3.1.5'
// 添加OpenTelemetry相关依赖
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'io.opentelemetry:opentelemetry-api'
implementation 'io.opentelemetry:opentelemetry-sdk'
implementation 'io.opentelemetry.instrumentation:opentelemetry-spring-boot-starter'

获取TraceId和SpanId的逻辑与之前类似,仅Tracer的包路径变更:

import io.opentelemetry.api.trace.Tracer;
import io.opentelemetry.api.trace.Span;

@Service
public class LogService {
    private final Tracer tracer;

    public LogService(Tracer tracer) {
        this.tracer = tracer;
    }

    public void logTraceInfo() {
        Span currentSpan = Span.current();
        String traceId = currentSpan.getSpanContext().getTraceId();
        String spanId = currentSpan.getSpanContext().getSpanId();
        // 业务日志输出或逻辑使用
    }
}

2. 使用Sleuth临时过渡版本(不推荐)

如果暂时无法重构代码,可以尝试社区维护的最后一个适配Spring Boot3的Sleuth里程碑版本,但该版本无官方支持,后续存在风险:

implementation 'org.springframework.cloud:spring-cloud-starter-sleuth:3.2.0-M1'

使用此版本时,原有org.springframework.cloud.sleuth.Tracer的注入逻辑无需修改,自动配置会恢复Tracer Bean的创建。

注意事项

Spring Cloud Sleuth从3.1.x版本后正式进入维护状态,不再新增功能,官方明确推荐迁移到OpenTelemetry以获得长期支持和更丰富的追踪能力。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 16:50:27