Spring应用程序中的Eureka运行状况检查问题

时间:2017-12-05 08:14:25

标签: java spring intellij-idea netflix-eureka

我正在开发一个由几个微服务组成的基于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收到错误消息?

感谢您的帮助!

3 个答案:

答案 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不兼容。 按照发布日期匹配它们。