簡體   English   中英

Spring 引導應用程序在 Eureka 服務器中顯示為未知

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

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