我正在开发一个由几个微服务组成的基于Spring的应用程序。我的一个微服务充当了Eureka服务器,到目前为止一切正常。
在我所有的其他微服务中(用 @EnableEurekaClient 注释),我想启用这样的健康检查:
application.yml
eureka:
client:
healthcheck:
enabled: true
我注意到的第一件事是我的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] 在java.lang.ClassLoader.loadClass(ClassLoader.java:424)〜[na:1.8.0_151] at 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个常见帧
如果我将编译(' org.springframework.boot:spring-boot-starter-actuator')添加到我的build.gradle文件中(我假设,这就是错误消息想告诉我),它编译并开始正常。但是,IDE仍然显示上面的错误。
我的问题如下:
1。如果想要使用Eureka健康状况检查,是否需要在类路径上使用执行器的预期行为?
2. 为什么我从IDE收到错误消息?
感谢您的帮助!
答案 0 :(得分:1)
我遇到了同样的问题,但是,当我添加
时,所有东西都可以找到compile('org.springframework.boot:spring-boot-starter-actuator')
错误消息消失了,我的建议如下:
1-始终确保所有微服务共享相同的Spring Boot版本 2-使用Spring Initializr https://start.spring.io/ 3-使用最新的稳定版本
答案 1 :(得分:0)
是的。为了使用准备就绪的功能,例如审核,运行状况检查,度量标准获取等,您需要提供Spring Doc本身中提到的 spring-boot-starter-actuator 依赖于启动程序的功能。 您可以参考this site进行快速介绍。
答案 2 :(得分:0)
spring-boot版本与spring-cloud-starter-netflix-eureka-client不兼容。 按照发布日期匹配它们。