Spring Sleuth未生成Trace Id/Span Id且无法连接Zipkin求助
Spring Cloud Zipkin无Trace Id/Span Id且无法通信的问题排查
问题分析
从你的配置和日志来看,核心问题出在依赖版本不兼容、缺少必要依赖以及配置项错误这几个方面,导致链路追踪功能未生效。
具体问题与修复方案
1. 依赖版本不兼容且缺少Zipkin Starter
- Spring Boot 3.0.0对应Spring Cloud 2022.0.x(Kilburn),但你手动指定的
spring-cloud-starter-sleuth3.1.5版本仅适配Spring Boot 2.7,版本不匹配导致功能失效。 - 缺少
spring-cloud-starter-zipkin依赖:仅依赖Sleuth只能生成链路数据,需要该依赖完成数据上报到Zipkin Server的操作。
修复后的Pom依赖:
<modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.0.0</version> <relativePath /> <!-- lookup parent from repository --> </parent> <groupId>com.tracing</groupId> <artifactId>Zipkin-Server</artifactId> <version>0.0.1-SNAPSHOT</version> <name>Zipkin-Server</name> <description>Demo project for Spring Boot</description> <properties> <java.version>17</java.version> <spring-cloud.version>2022.0.0-RC2</spring-cloud.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <!-- 由Spring Cloud BOM统一管理版本,无需手动指定 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-sleuth</artifactId> </dependency> <!-- 添加Zipkin Starter实现链路数据上报 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId> </dependency> </dependencies>
2. 配置项语法与属性错误
- Properties配置文件需使用
=作为赋值符号,你误用了YAML语法的:。 - 采样率配置项
spring.sleuth.sampler.percentage已废弃,Spring Cloud Sleuth 3.x及以后版本需使用spring.sleuth.sampler.probability。
修复后的应用配置:
spring.application.name=sample-tracing logging.level.org.springframework.web.servlet.DispatcherServlet=DEBUG # 修正为Properties格式的赋值符号 spring.zipkin.baseUrl=https://localhost:9411/ # 使用新版采样率配置项 spring.sleuth.sampler.probability=1.0
3. 验证标准
修复后重启应用,调用/hello接口,日志中会出现包含Trace Id和Span Id的格式,示例如下:
2022-12-15T13:24:15.514-05:00 INFO [sample-tracing,abc123,def456] 10220 --- [nio-8080-exec-2] c.tracing.zs.controller.HelloController : Enter the Hellow World Controller
此时链路数据会正常上报到Zipkin Server。
内容的提问来源于stack exchange,提问作者ssj
相关产品推荐
相关产品推荐

