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获
其中使用的时候遇到的问题:
Dirty files found: [SpringCloudClient-test.properties , spring-cloud-client-dev.yml, README.md]
这种问题比较恶心了,百度也找不到相关资料说什么 配置文件加force-pull: true
但是使用还是报这个问题 ,后经过测试是git仓库的问题!
引用:https://www.jianshu.com/p/e00922484abf
源码:链接: https://pan.baidu.com/s/14RT9s57ZdOuCTqJEy1Fvxw 提取码: rfas 复制这段内容后打开百度网盘手机App,操作更方便哦 懒得上传到git
注意:本文归作者所有,未经作者允许,不得转载