[英]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.