SpringCloud 发现第一引导程序
如果使用DiscoveryClient
实现,例如Spring Cloud Netflix和Eureka Service Discovery或Spring Cloud Consul,则可以让Config Server向Discovery Service注册。但是,在默认的“ Config First ”模式下,客户端无法利用注册。
如果您更喜欢使用DiscoveryClient
来查找配置服务器,则可以通过设置spring.cloud.config.discovery.enabled=true
(默认值为false
)来进行。这样做的最终结果是,所有客户端应用程序都需要具有适当发现配置的bootstrap.yml
(或环境变量)。例如,对于Spring Cloud Netflix,您需要定义Eureka服务器地址(例如,在eureka.client.serviceUrl.defaultZone
中)。使用此选项的价格是启动时需要进行额外的网络往返,以查找服务注册。好处是,只要发现服务是固定点,配置服务器就可以更改其坐标。默认服务ID是configserver
,但是您可以通过设置spring.cloud.config.discovery.serviceId
在客户端上(以及在服务器上,以一种通常的服务方式,例如通过设置spring.application.name
)来更改该ID。
发现客户端实现均支持某种元数据映射(例如,对于Eureka,我们有eureka.instance.metadataMap
)。Config Server的某些其他属性可能需要在其服务注册元数据中进行配置,以便客户端可以正确连接。如果Config Server受HTTP Basic保护,则可以将凭据配置为user
和password
。另外,如果Config Server具有上下文路径,则可以设置configPath
。例如,以下YAML文件适用于作为Eureka客户端的Config Server:
bootstrap.yml。
eureka:
instance:
...
metadataMap:
user: osufhalskjrtl
password: lviuhlszvaorhvlo5847
configPath: /config
更多建议: