Spring cloud Eureka First Bootstrap-除非Eureka服务器具有配置服务器URI,否则无法工作

Spring cloud Eureka First Bootstrap-除非Eureka服务器具有配置服务器URI,否则无法工作,spring-cloud,spring-cloud-config,Spring Cloud,Spring Cloud Config,我正在尝试将Eureka设置为使用cloud config server,但Eureka server无法在启动时找到configserver的实例: WARN 17584 --- [ main] lientConfigServiceBootstrapConfiguration : No instances found of configserver (CONFIGSERVER) 不确定我在配置方面缺少什么。配置服务器如下所示: bootstrap.yml spring:

我正在尝试将Eureka设置为使用cloud config server,但Eureka server无法在启动时找到configserver的实例:

WARN 17584 --- [           main] lientConfigServiceBootstrapConfiguration : No instances found of configserver (CONFIGSERVER)
不确定我在配置方面缺少什么。配置服务器如下所示:

bootstrap.yml

spring:
  application:
    name: configserver
application.yml

spring:
  profiles: dev

  cloud:
    config:
      server:
        git:
          uri: https://XXXXXXX/config.git
          username: XXXXXXX
          password: XXXXXXX

server:
  port: 9999

eureka:
  instance:
    hostname: localhost
  client:
    registerWithEureka: true
    fetchRegistry: true
    serviceUrl:
      defaultZone: http://localhost:9998/eureka/
从配置为bootstrap.yml(1)的发现服务开始。似乎当configserver注册时,发现服务应该能够检索其配置并正确启动,但发现服务无法完全启动,配置服务器永远无法注册。当我在bootstrap.yml(2)中添加额外的配置时,两个服务都会启动,但发现服务从不使用配置服务器检索其配置(discoveryservice.yml)。如果我提供spring.cloud.config.uri属性,发现服务将启动并按预期从服务器检索其配置。让我觉得我遗漏了什么,或者Eureka在没有配置服务器uri的情况下无法从配置服务器检索其配置

bootstrap.yml(1)

bootstrap.yml(2)

discoveryservice.yml(来自配置服务器git repo):


一些问题/评论。你用的是什么版本?另外,
eureka.instance.hostname
是将当前服务注册为的名称。它可能仅在工作站上运行时相同。1.1.1.0.RC1 for spring cloud config server和spring cloud starter eureka server,1.3.3.RELEASE for spring boot。这最终将在AWS中运行,因此这些配置文件中的主机名已设置为ec2主机名,为了简单起见,我只保留了这些配置文件,但我在本地看到了与AWS中相同的问题。以为注册名来自spring.application.name?一旦两个应用程序都启动,配置就可以注册为DiscoveryClient\u CONFIGSERVER,但发现服务只是注册它,而不检索自己的配置。我的想法是,配置服务将启动并尝试注册自己,并将重试,直到发现服务启动,在这一点上,它注册并发现服务,然后使用配置服务器中的配置初始化自己。。。也许我误解了启动顺序。尝试了解发现服务是否以及如何将配置服务用于其configurationconfigserver不会重新初始化自身。它可以自己从git初始化自己,但不应该有
spring.cloud.config.discovery.enabled:true
。这是一个鸡和蛋的问题。没错,configserver不能,但一旦发现服务(configserver)注册自己,它应该能够从configserver获取配置,对吗?否则,发现服务似乎需要configserver uri,这与eureka first设置的目的背道而驰。或者我应该假设发现服务必须有自己的所有配置,而不依赖于configserver进行配置吗?本质上,我想问题是:
spring.cloud.config.discovery.enabled:true
是发现服务的有效选项吗?
spring:
  application:
    name: discoveryservice

---

spring:
  profiles: dev

  cloud:
    config:
      discovery:
        enabled: true
spring:
  application:
    name: discoveryservice

---

spring:
  profiles: dev

  cloud:
    config:
      discovery:
        enabled: true

server:
  port: 9998

eureka:
  instance:
    hostname: localhost
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
server:
  port: 9998

---

spring:
  profiles: dev

eureka:
  instance:
    hostname: localhost
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/