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

SpringBoot整合Zipkin与Eureka Server启动报错及页面无法访问问题

问题:SpringBoot Eureka Server整合Zipkin追踪时启动报错,版本适配异常

报错信息

java.lang.IllegalArgumentException: Could not find class [org.springframework.cloud.client.loadbalancer.LoadBalancerEagerLoadProperties]
    at org.springframework.util.ClassUtils.resolveClassName(ClassUtils.java:333) ~[spring-core-6.0.3.jar:6.0.3]
    at org.springframework.core.annotation.TypeMappedAnnotation.adapt(TypeMappedAnnotation.java:465) ~[spring-core-6.0.3.jar:6.0.3]
    at org.springframework.core.annotation.TypeMappedAnnotation.getValue(TypeMappedAnnotation.java:390) ~[spring-core-6.0.3.jar:6.0.3]
    at org.springframework.core.annotation.TypeMappedAnnotation.asMap(TypeMappedAnnotation.java:278) ~[spring-core-6.0.3.jar:6.0.3]
    at org.springframework.core.annotation.AbstractMergedAnnotation.asAnnotationAttributes(AbstractMergedAnnotation.java:193) ~[spring-core-6.0.3.jar:6.0.3]
    at org.springframework.core.type.AnnotatedTypeMetadata.getAnnotationAttributes(AnnotatedTypeMetadata.java:106) ~[spring-core-6.0.3.jar:6.0.3]
    at org.springframework.core.type.AnnotatedTypeMetadata.getAnnotationAttributes(AnnotatedTypeMetadata.java:81) ~[spring-core-6.0.3.jar:6.0.3]
    at org.springframework.context.annotation.AnnotationConfigUtils.attributesFor(AnnotationConfigUtils.java:301) ~[spring-context-6.0.3.jar:6.0.3]

当前POM配置

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
    <spring.boot.dependencies.version>3.0.1</spring.boot.dependencies.version>
    <spring.cloud-version>2020.0.3</spring.cloud-version>
</properties>

<dependencies>
    <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-netflix-eureka-server -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        <version>4.0.0</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-sleuth</artifactId>
        <version>3.1.6</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-sleuth-zipkin</artifactId>
        <version>3.1.6</version>
    </dependency>
</dependencies>

当前application.properties配置

spring.application.name=eureka-server
server.port=8761
eureka.client.fetch-registry=false
eureka.client.register-with-eureka=false
log.level.root=debug
spring.zipkin.base-url=http://localhost:9411

问题分析

核心问题是版本完全不兼容:

  • Spring Boot 3.0.x要求JDK 17,你用了JDK 1.7,底层类库无法兼容
  • Spring Boot 3.0.x对应的Spring Cloud版本是2022.0.x,你用了2020.0.3,两者依赖的组件版本差异极大
  • Spring Cloud Sleuth 3.1.6已停止维护,且不兼容Spring Boot 3,官方已替换为Micrometer Tracing

解决方案

1. 统一版本并调整JDK要求

修改POM的properties部分,适配Spring Boot 3的版本规范:

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>17</maven.compiler.source>
    <maven.compiler.target>17</maven.compiler.target>
    <spring-boot.version>3.0.1</spring-boot.version>
    <spring-cloud.version>2022.0.4</spring-cloud.version> <!-- 适配Spring Boot 3.0.x -->
</properties>

2. 添加Spring Cloud依赖管理

在POM中加入dependencyManagement,统一管理Spring Cloud组件版本,避免手动指定版本导致冲突:

<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>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>${spring-boot.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

3. 替换Sleuth为Micrometer Tracing

移除原有的Sleuth依赖,改用适配Spring Boot 3的Micrometer组件实现Zipkin追踪:

<dependencies>
    <!-- Eureka Server -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    </dependency>
    
    <!-- Micrometer Tracing + Zipkin -->
    <dependency>
        <groupId>io.micrometer</groupId>
        <artifactId>micrometer-tracing-bridge-brave</artifactId>
    </dependency>
    <dependency>
        <groupId>io.zipkin.reporter2</groupId>
        <artifactId>zipkin-reporter-brave</artifactId>
    </dependency>
</dependencies>

4. 验证启动与访问

  1. 确保本地已启动Zipkin服务(端口9411)
  2. 启动Eureka Server,访问http://localhost:8761,此时应正常显示Eureka控制台主页
  3. 查看日志,确认追踪数据正常上报到Zipkin

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 22:48:20