[英]Spring Boot Application shown as UNKNOWN in Eureka server
我正在運行一個帶有 Spring 的應用程序(作為 Discovery Client 應用程序),還有一個帶有 Eureka 的 Discovery Server 和 Spring Cloud Config Server。 當客戶端應用程序啟動時,它在 Eureka 中注冊為“UNKNOWN”,盡管其狀態設置為“UP”,但無法從配置服務器獲取屬性。
客戶端應用程序、尤里卡服務器和配置服務器 Spring 引導版本:2.4.2
客戶端 bootstrap.properties:
spring.application.name=config-client-app
spring.cloud.config.discovery.enabled=true
eureka.client.service-url.defaultZone=http://localhost:8761/eureka
eureka.instance.instance-id=${spring.application.name}
客戶端application.properties文件:
logging.level.=debug
server.port=8900
eureka.client.healthcheck.enabled=true
客戶申請Class:
@SpringBootApplication
@EnableDiscoveryClient
@RestController
public class ConfigClientAppApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigClientAppApplication.class, args);
}
}
尤里卡服務器屬性文件:
spring.application.name=discovery-server
server.port=8761
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
尤里卡申請 class:
@EnableEurekaServer
@SpringBootApplication
public class DiscoveryServerApplication {
public static void main(String[] args) {
SpringApplication.run(DiscoveryServerApplication.class, args);
}
}
日志信息:
restartedMain] c.n.discovery.InstanceInfoReplicator : InstanceInfoReplicator onDemand update allowed rate per min is 4
2021-02-09 16:02:50.388 INFO 2845 --- [ restartedMain] com.netflix.discovery.DiscoveryClient : Discovery Client initialized at timestamp 1612904570388 with initial instances count: 1
2021-02-09 16:02:50.390 INFO 2845 --- [ restartedMain] o.s.c.n.e.s.EurekaServiceRegistry : Registering application UNKNOWN with eureka with status UP
2021-02-09 16:02:50.391 INFO 2845 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient : Saw local status change event StatusChangeEvent [timestamp=1612904570391, current=UP, previous=STARTING]
2021-02-09 16:02:50.391 INFO 2845 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient : DiscoveryClient_UNKNOWN/192.168.10.22:8900: registering service...
2021-02-09 16:02:50.391 WARN 2845 --- [ restartedMain] c.n.discovery.InstanceInfoReplicator : Ignoring onDemand update due to rate limiter
2021-02-09 16:02:50.393 INFO 2845 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8900 (http) with context path ''
2021-02-09 16:02:50.394 INFO 2845 --- [ restartedMain] .s.c.n.e.s.EurekaAutoServiceRegistration : Updating port to 8900
2021-02-09 16:02:50.413 INFO 2845 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient : DiscoveryClient_UNKNOWN/192.168.10.22:8900 - registration status: 204
我用的是Spring雲版
<spring-cloud.version>2021.0.5</spring-cloud.version>
和 spring 引導版本
<version>2.7.5</version>
在 application.properties 中,添加以下行以解決錯誤:
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
默認情況下,Eureka 服務器將自己注冊到發現中。 以下兩行將告訴 eureka 服務器在這個上下文中只有一個 eureka 服務器存在。
如果沒有這些,我們的 Eureka Server 將嘗試在上下文中的其他 Eureka Server 上查找並注冊自己,並拋出發現客戶端異常。 即我們自己的系統。
如果在添加上述屬性后遇到以下錯誤,只需添加以下屬性即可。
如果不需要配置,我們必須將其添加到properties
中。
spring.cloud.config.enabled=false
否則應用程序將拋出以下異常。
No spring.config.import property has been defined
(或)如果您有其他服務器,例如任何配置服務器,我們可以將此可選服務器配置添加到application.properties
,
spring.config.import=optional:configserver: Your server url
Spring Cloud Config 為分布式系統中的外部化配置提供服務器端和客戶端支持
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.