springCloudConfig简介
微服务将单体应用拆分为一个个的子服务,而每个服务都需要必要的配置信息才能运行,所以有一套集中式的、动态的配置管理设施必不可少,springCloud就提供出了一套配置中心SpringCloudConfig来进行配置管理
springCloudConfig分为客户端和服务端两部分。
服务端称为分布式配置中心,是一个独立的微服务应用,用来连接配置服务器并为客户端提供获取配置信息的访问接口,集中管理应用程序各个环境下的配置,配置服务器默认采用git来存储配置信息,并可以通过git客户端工具来方便的管理和访问配置内容;
客户端是通过指定的配置中心来管理应用资源,在启动的时候从配置中心获取和加载配置信息。
作用
- 集中管理配置文件
- 不同环境不同配置,动态化的配置更新
- 运行期间动态调整配置,服务会向配置中心统一拉取
- 配置发生变化时,服务不需要重启即可感知到配置的变化并应用新的配置
- 将配置信息以rest接口形式暴露
配置
服务端配置
依赖
1 | <dependency> |
启动类
1 |
|
配置
首先在github上新建一个仓库,在该仓库中application.yml
1 | spring: |
支持rest风格的方式获取资源(label指的是github的分支名称,profile指的是环境,application服务名)
1 | /{application}/{profile}[/{label}] |
客户端配置
spring有两种配置文件,一种是application.yml,是用户级别的资源配置项;第二种是bootstrap.yml,是系统级别的,优先级更高,springcloud对于bootstrap.yml会创建一个’Bootstrap Context’,作为Spring应用的Application Context的父上下文,初始化时,Bootstrap Context负责从外部源加载配置属性并解析配置,这两个上下文共享一个从外部获取的Environment,Bootstrap的优先级更高,默认情况下,不会被被本地配置覆盖
在bootstrap.yml中配置以spring.cloud.config为前缀的配置
依赖
1 | <dependency> |
配置
1 | spring: |