
大家好,今天我们说说Springcloud的第六个组件——Config。
Config是什么? |
Config是为分布式系统中的基础设施和微服务应用提供集中化的外部配置,默认采用Git来存储配置信息。它分为两部分:
- 服务端
又称为分布式配置中心,是一个独立的微服务应用,用来连接配置仓库并为客户端提供获取配置信息、加密/解密信息等访问接口。
- 客户端
指的是各个微服务应用或基础设施,通过制定的配置中心来管理应用资源与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息。
服务端配置 |
基础架构

- 远程Git仓库:
用来存储配置文件的地方
- Config Server:
Config的服务端,指定了要连接的git仓库位置以及账号密码等信息。
- 本地Git仓库:
每次客户端请求获取配置信息的时候,Config Server就会从Git仓库中获取最新配置到本地,然后再从本地Git仓库中读取并返回。
如果远程仓库无法获取,则直接将本地内容返回。
- ServiceA、ServiceB:
Config中的客户端,就是我们平时开发的具体的微服务应用,其指定了Config Server的地址。当这些应用启动时,会向Config Server请求获取配置信息来进行加载。
仓库存储
仓库存储可选项为3个:Git、SVN、本地。Config中默认采用了Git。
健康监测
健康监测是为了监测git仓库是否可以连通。
属性覆盖
可以使用命令对属性进行自定义修改:
spring.cloud.config.server.overrides.name=didi
安全配置
我们可以使用Spring Security技术对配置中心进行安全保护。使用{cipher}作为前缀来对配置文件中的账号密码等进行加密解密。
客户端配置 |
URI指定配置中心
当Config的客户端启动时,会尝试连接服务端来获取远程配置信息并初始化Spring环境配置。所以,我们可以先在客户端配置文件中对服务端的相关信息进行设定。
spring.application.name=didispce
spring.cloud.config.profile=dev
spring.cloud.config.uri=http://localhost:7001/
失败快速响应与重试
Config的客户端在连接Config Server之前,会预先加载很多其它的信息,如果我们想实现客户端优先去判断Config Server是否正常,可以这样设置属性:
spring.cloud.config.failFast=true
如果判断不正常的话,可以使用重试功能来进行再次尝试。
动态刷新配置
Config支持对配置内容进行实时更新。