阅读背景:

Spring Cloud Config之引导配置

来源:互联网 

一个Spring Boot应用程序可以立即利用Spring Config Server(或应用程序开发人员提供的其他外部属性源),并且还将获取与Environment更改事件相关的一些其他有用功能。

配置第一引导

这是在类路径中具有Spring Cloud Config Client的任何应用程序的默认行为。当配置客户端启动时,它将通过配置服务器(通过引导配置属性spring.cloud.config.uri)绑定并使用远程属性源初始化SpringEnvironment

这样做的最终结果是所有想要使用配置服务器的客户端应用程序都需要spring.cloud.config.uri(默认为“http:// localhost:8888”)的bootstrap.yml(或环境变量) )。

发现第一个引导

如果您正在使用“DiscoveryClient”实现,例如Spring Cloud Netflix和Eureka Service Discovery或Spring Cloud Consul(Spring Cloud Zookeeper还不支持此功能),那么您可以让Config Server注册Discovery Discovery,但在默认的“配置优先”模式下,客户端将无法利用注册。

如果您希望使用DiscoveryClient找到Config Server,可以通过设置spring.cloud.config.discovery.enabled=true(默认为“false”)来实现。最终的结果是客户端应用程序都需要具有适当的发现配置的bootstrap.yml(或环境变量)。例如,使用Spring Cloud Netflix,您需要定义Eureka服务器地址,例如eureka.client.serviceUrl.defaultZone使用此选项的价格是启动时额外的网络往返,以定位服务注册。好处是配置服务器可以更改其坐标,只要发现服务是一个固定点。默认的服务标识是“configserver”,但是您可以使用spring.cloud.config.discovery.serviceId在客户端上进行更改(在服务器上可以通过设置spring.application.name以通常方式更改服务。

发现客户端实现都支持某种元数据映射(例如,对于Eureka,我们有eureka.instance.metadataMap)。可能需要在其服务注册元数据中配置Config Server的一些其他属性,以便客户端可以正确连接。如果使用HTTP Basic安全配置服务器,则可以将凭据配置为“用户名”和“密码”。并且如果配置服务器具有上下文路径,您可以设置“configPath”。例如,对于作为Eureka客户端的配置服务器:

bootstrap.yml
eureka:
instance:
...
metadataMap:
user: osufhalskjrtl
password: lviuhlszvaorhvlo5847
configPath: /config

配置客户端快速失败

在某些情况下,如果服务无法连接到配置服务器,则可能希望启动服务失败。如果这是所需的行为,请设置引导配置属性spring.cloud.config.failFast=true,客户端将以异常停止。

配置客户端重试

如果您希望配置服务器在您的应用程序启动时可能偶尔不可用,您可以要求它在发生故障后继续尝试。首先,您需要设置spring.cloud.config.failFast=true,然后您需要将spring-retryspring-boot-starter-aop添加到您的类路径中。默认行为是重试6次,初始退避间隔为1000ms,指数乘数为1.1,用于后续退避。您可以使用spring.cloud.config.retry.*配置属性配置这些属性(和其他)。


分享到: