Spring应用中Eureka健康检查的问题

use*_*048 5 java spring intellij-idea netflix-eureka

我正在开发一个由多个微服务组成的基于 Spring 的应用程序。我的一个微服务充当 Eureka 服务器,到目前为止一切正常。

在我所有的其他微服务(用@EnableEurekaClient注释)中,我想启用这样的健康检查:

应用程序.yml

eureka:
  client:
    healthcheck:
      enabled: true
Run Code Online (Sandbox Code Playgroud)

我注意到的第一件事是我的 IDE 显示了一个错误:

无法解析配置属性“eureka.client.healthcheck.enabled”

这发生在 Intellij Idea 和 STS 中,所以我认为这不仅仅是 IDE 错误!

应用程序启动失败,并显示一个长UnsatisfiedDependencyException,其根本原因如下:

引起:java.lang.ClassNotFoundException:org.springframework.boot.actuate.health.OrderedHealthAggregator at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_151] at java.lang.ClassLoader。 loadClass(ClassLoader.java:424) ~[na:1.8.0_151] 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) ~[na:1.8.0_151] 在 java.lang.ClassLoader.loadClass( ClassLoader.java:357) ~[na:1.8.0_151] ... 省略了 87 个常用帧

如果我将compile('org.springframework.boot:spring-boot-starter-actuator') 添加到我的 build.gradle 文件(我假设,这是错误消息想要告诉我的),它会编译并正常启动。但是,IDE 仍然向我显示上述错误。

我的问题如下:

1.如果想要使用 Eureka 健康检查,执行器是否需要在类路径上的预期行为?

2.为什么我的 IDE 会收到错误信息?

感谢帮助!

小智 3

我遇到了完全相同的问题,但是,当我添加时,一切都正常

编译('org.springframework.boot:spring-boot-starter-actuator')

并且错误消息消失了,我给您的建议如下:

1-始终确保所有微服务共享相同的 Spring Boot 版本 2-使用 Spring Initializr https://start.spring.io/ 3-使用最新的稳定版本