什么是Spring Cloud Config
- Spring Cloud Config 为微服务架构中的微服务提供集中式的外部配置支持,配置服务器为各个不同微服务应用的所有环境提供了一个中心化的外部配置。
- Spring Cloud Config 分为服务端与客户端两个部分:
- 服务端 config server:
也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置服务器并为客户端提供获取配置信息,加密、解密信息等访问接口。
配置服务器官方推荐采用Git来存储配置信息,这样就有助于对环境配置进行版本管理,并且可通过Git客户端工具来方便的管理与访问配置信息。 - 客户端 config client:
通过指定的服务端来管理服务的资源,以及与业务相关的配置内容,并在启动的时候从服务端获取和加载配置信息。
- 服务端 config server:
作用
- 集中管理配置文件
- 不同环境不同配置,动态化的配置更新,根据不同环境部署,如dev/test/prod
- 运行期间动态调整配置,不再需要在每个服务部署的机器上编写配置,服务会向配置中心统一拉取自已的配置信息
- 当配置发生变动时,服务不需要重启即可感知到配置的变化并使用修改后的配置信息
- 将配置信息以REST接口的形式暴露
配置文件
- application.yml 是用户级别的配置项
- bootstrap.yml 是系统级别的配置项,优先级更高
SpringCloud会创建一个BootstrapContext,BootstrapContext会负责从外部资源加载配置属性并解析配置;Bootstrap属性有高优先级,默认情况下,它们不会被本地配置覆盖。
bootstrap配置示例:
spring:
cloud:
config:
name: microservice-config-product #github上的配置名称,注意没有yml后缀名
profile: dev # 本次访问的环境配置项
label: master # 远程库的分支名
uri: http://localhost:5001 #Config配置中心地址,通过它获取microservice-config-product.yml配置信息
Q.E.D.