Spring Cloud Config
Spring Cloud Config为分布式系统中的外部配置提供服务器和客户端支持。方便部署与运维。
分客户端、服务端。
服务端也称分布式配置中心,是一个独立的微服务应用,用来连接配置服务器并为客户端提供获取配置信息,加密/解密信息等访问接口。
客户端则是通过指定配置中心来管理应用资源,以及与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息。默认采用 git,并且可以通过 git 客户端工具来方便管理和访问配置内容。
优点:
- 集中管理配置文件
- 不同环境不同配置,动态化的配置更新
- 运行期间,不需要去服务器修改配置文件,服务会想配置中心拉取自己的信息
- 配置信息改变时,不需要重启即可更新配置信息到服务
- 配置信息以 rest 接口暴露
服务端
引包:
<!-- springCloud Config -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
配置:
spring:
application:
name: microservicecloud-config
cloud:
config:
server:
git:
uri: https://github.com/icoreman/spring-cloud-config-demo1.git #GitHub上面的git仓库名字
开启自动配置:
@EnableConfigServer
访问方式:
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
都是 REST api 风格。
label 为分支,application 为应用名,profile 为环境信息。
客户端
客户端向服务端获取相关信息。
引包:
<!-- SpringCloud Config客户端 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
在 bootstrap.yml 声明注册中心地址、需要从github上读取的资源名称、分支版本、profile 环境。
spring:
cloud:
config:
name: microservicecloud-config-dept-client #需要从github上读取的资源名称,注意没有yml后缀名
profile: test #本次访问的配置项
label: master
uri: http://config-3344.com:3344 #本微服务启动后先去找3344号服务,通过SpringCloudConfig获取GitHub的服务地址