簡體   English   中英

Spring應用中Eureka健康檢查的問題

[英]Problems with Eureka Health Checks in Spring Application

我正在開發一個由多個微服務組成的基於 Spring 的應用程序。 我的一個微服務充當 Eureka 服務器,到目前為止一切正常。

在我所有其他微服務(用@EnableEurekaClient注釋)中,我想啟用這樣的健康檢查:

應用程序.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] 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 會收到錯誤信息?

感謝幫助!

我遇到了同樣的問題,但是,當我添加

編譯('org.springframework.boot:spring-boot-starter-actuator')

並且錯誤消息消失了,我對您的建議如下:

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

是的。 為了使用生產就緒功能,如審計、健康檢查、指標收集等,您需要提供Spring Doc本身中提到的spring-boot-starter-actuator啟動器依賴項。 您可以參考此站點以進行快速介紹。

spring-boot 版本與 spring-cloud-starter-netflix-eureka-client 不兼容。 按發布日期匹配它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM