Spring Discovery First Bootstrap没有';找不到配置服务器

Spring Discovery First Bootstrap没有';找不到配置服务器,spring,spring-boot,spring-cloud,netflix-eureka,spring-cloud-config,Spring,Spring Boot,Spring Cloud,Netflix Eureka,Spring Cloud Config,目前,我正在使用Discovery First运行Spring引导服务。 一个接一个地启动服务很好,但是我在通过docker compose一次启动所有服务时遇到问题 discovery first引导程序似乎不像我预期的那样工作。我假设该服务将暂停/重试,直到他从配置服务接收到配置,这是通过eureka发现的。但目前,它将尝试解决一次配置,然后服务将立即启动-无论配置是否已带来 服务引导程序如下所示: spring: application: name: my-service

目前,我正在使用Discovery First运行Spring引导服务。 一个接一个地启动服务很好,但是我在通过docker compose一次启动所有服务时遇到问题

discovery first引导程序似乎不像我预期的那样工作。我假设该服务将暂停/重试,直到他从配置服务接收到配置,这是通过eureka发现的。但目前,它将尝试解决一次配置,然后服务将立即启动-无论配置是否已带来

服务引导程序如下所示:

spring:
  application:
    name: my-service
  cloud:
    config:
      fail-fast: false
      discovery:
        enabled: true
        service-id: configserver
      retry:
        initialInterval: 2000
        multiplier: 1.5
        maxInterval: 60000
        maxAttempts: 10

server:
  port: ${APPLICATION_PORT:16000}
eureka:
  client:
    serviceUrl:
      defaultZone: http://${EUREKA_HOSTNAME:localhost}:15000/eureka/
eureka配置如下所示:

spring:
  application:
    name: manager
server:
  port: 15000
eureka:
  client:
    registerWithEureka: true
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${EUREKA_HOSTNAME:localhost}:15000/eureka/
spring:
  application:
    name: configserver
  cloud:
    config:
      fail-fast: true
server:
  port: 15001
eureka:
  client:
    serviceUrl:
      defaultZone: http://${EUREKA_HOSTNAME:localhost}:15000/eureka/
最后但并非最不重要-configserver配置如下所示:

spring:
  application:
    name: manager
server:
  port: 15000
eureka:
  client:
    registerWithEureka: true
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${EUREKA_HOSTNAME:localhost}:15000/eureka/
spring:
  application:
    name: configserver
  cloud:
    config:
      fail-fast: true
server:
  port: 15001
eureka:
  client:
    serviceUrl:
      defaultZone: http://${EUREKA_HOSTNAME:localhost}:15000/eureka/
这里有人能给点建议吗

我发现了问题:

事实上,我发现我们这边有两个问题。第一个问题是没有合适的租赁续约时间间隔。客户端刚刚尝试接收带有缓存服务的配置。 由于缓存的服务不包含配置服务,因此他无法接收正确的配置

第二个问题是没有等待足够的时间。这已在提高最大尝试次数时得到修复。因此,配置和发现服务确实有足够的时间启动

现在,客户端配置如下所示:

spring:
  application:
    name: service
  cloud:
    config:
      fail-fast: true
      discovery:
        enabled: true
        service-id: CONFIGSERVER
      retry:
        initialInterval: 2000
        multiplier: 1.5
        maxInterval: 60000
        maxAttempts: 100

server:
  port: ${APPLICATION_PORT:16000}
eureka:
  instance:
    lease-renewal-interval-in-seconds: 10
  client:
    fetch-registry: true
    serviceUrl:
      defaultZone: http://${EUREKA_HOSTNAME:localhost}:15000/eureka/