Spring Cloud Config客户端

12 篇文章 0 订阅
12 篇文章 0 订阅

Spring Boot应用程序可以立即利用Spring Config Server(或应用程序开发人员提供的其他外部属性源),并且还将获取与Environment更改事件相关的一些其他有用功能。
配置第一个引导程序
对于在类路径上具有Spring Cloud Config Client的任何应用程序,这是默认行为。当配置客户端启动时,它将绑定到配置服务器(通过bootstrap配置属性spring.cloud.config.uri),并Environment使用远程属性源初始化Spring 。
最终结果是,所有要使用Config Server的客户端应用程序都需要一个bootstrap.yml(或环境变量),其服务器地址为spring.cloud.config.uri(默认值为“ http:// localhost:8888”)。
Eureka First Bootstrap
如果您使用的是Spring Cloud Netflix和Eureka Service Discovery,则可以根据需要向Config Server注册Eureka,但是在默认的“ Config First”模式下,客户端将无法利用注册。
如果您更喜欢使用Eureka来定位Config Server,则可以通过设置来实现spring.cloud.config.discovery.enabled=true(默认为“ false”)。最终结果是,客户端应用程序都需要一个bootstrap.yml带有Eureka服务器地址的 (或环境变量),例如中的eureka.client.serviceUrl.defaultZone。使用此选项的价格是启动时需要进行额外的网络往返以查找服务注册。好处是,只要Eureka是固定点,Config Server即可更改其坐标。默认服务ID是“ CONFIGSERVER”,但是您可以在客户端上使用spring.cloud.config.discovery.serviceId(和在服务器上以一种通常的方式更改服务,例如通过设置spring.application.name)来更改它。
发现客户端实现均支持某种元数据映射(例如,对于Eureka而言eureka.instance.metadataMap)。Config Server的某些其他属性可能需要在其服务注册元数据中进行配置,以便客户端可以正确连接。如果Config Server受HTTP Basic保护,则可以将凭据配置为“用户名”和“密码”。如果配置服务器具有上下文路径,则可以设置“ configPath”。例如,对于作为Eureka客户端的Config Server:
bootstrap.yml
eureka:
instance:

metadataMap:
username: osufhalskjrtl
password: lviuhlszvaorhvlo5847
configPath: /config
快速配置客户端失败
在某些情况下,如果服务无法连接到Config Server,则可能需要使服务启动失败。如果这是所需的行为,请设置引导程序配置属性spring.cloud.config.failFast=true,并且客户端将因异常而停止。
配置客户端重试
如果您希望配置服务器在启动时偶尔会不可用,则可以要求它在失败后继续尝试。首先,您需要设置spring.cloud.config.failFast=true,然后需要将spring-retry和添加 spring-boot-starter-aop到您的类路径中。默认行为是重试6次,初始回退间隔为1000ms,随后的回退的指数乘数为1.1。您可以使用spring.cloud.config.retry.配置属性来配置这些属性(和其他属性)。
TIP 要完全控制重试,请添加ID为“ configServerRetryInterceptor”
@Bean的类型RetryOperationsInterceptor。Spring Retry具
有一个RetryInterceptorBuilder易于创建的功能。
查找远程配置资源
Config Service提供来自的属性源/{name}/{profile}/{label},其中客户端应用程序中的默认绑定是
• “name” = ${spring.application.name}
• “profile” = ${spring.profiles.active} (actually Environment.getActiveProfiles())
• “label” = “master”
所有这些都可以通过设置来覆盖spring.cloud.config.
(其中*的“名称”,“配置文件”或“标签”)。“标签”对于回滚到以前的配置版本很有用。使用默认的Config Server实现,它可以是git标签,分支名称或提交ID。标签也可以作为逗号分隔的列表提供,在这种情况下,列表中的项目将被逐一尝试,直到成功为止。这在使用功能分支时非常有用,例如,当您可能希望将配置标签与分支对齐,但使其变为可选(例如spring.cloud.config.label=myfeature,develop)时。
安全
如果在服务器上使用HTTP基本安全性,则客户端只需知道密码(如果不是默认用户名,则需要知道用户名)。您可以通过配置服务器URI或单独的用户名和密码属性(例如,
bootstrap.yml
spring:
cloud:
config:
uri: https://user:secret@myconfig.mycompany.com
要么
bootstrap.yml
spring:
cloud:
config:
uri: https://myconfig.mycompany.com
username: user
password: secret
在spring.cloud.config.password与spring.cloud.config.username 那就是在URI提供的值覆盖任何东西。
如果您在Cloud Foundry上部署应用程序,那么提供密码的最佳方法是通过服务凭证(例如URI),因为那样,甚至不需要将其存储在配置文件中。一个示例,该示例在本地运行并适用于Cloud Foundry上名为“ configserver”的用户提供的服务:
bootstrap.yml
spring:
cloud:
config:
uri: ${vcap.services.configserver.credentials.uri:http://user:password@localhost:8888}
如果您使用安全的另一种形式,你可能需要提供 RestTemplate给ConfigServicePropertySourceLocator(例如,通过在引导方面抓住它,并注入一个)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值