六.Spring Cloud分布式配置中心实践(Config)

开宗明义
在分布式系统中,由于服务数量巨大,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。在Spring Cloud中,有分布式配置中心组件spring cloud config ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中。在spring cloud config 组件中,分两个角色,一是config server,二是config client

1 构建config server

1.1 创建springboot项目作为config server,命名为config-server


Screenshot from 2018-02-23 22-23-48.png

1.2 创建后的pom.xml文件(引入eureka,config server依赖)


Screenshot from 2018-02-23 22-25-49.png

1.3 启动类ConfigServerApplication ,加上@EnableConfigServer注解开启配置服务器的功能


Screenshot from 2018-02-23 22-28-13.png

1.4 配置application.properties文件


Screenshot from 2018-02-25 12-16-49.png

spring.cloud.config.server.git.uri:配置git仓库地址(最好是https,ssh实践中可能会出错,原因尚待研究)
spring.cloud.config.server.git.searchPaths:配置仓库路径
spring.cloud.config.label:配置仓库的分支
spring.cloud.config.server.git.username:访问git仓库的用户名
spring.cloud.config.server.git.password:访问git仓库的用户密码

1.5 建一个gitthub仓库spring-cloud-config,目录下有config文件夹,存放config-client-dev.properties文件,文件内有如下内容:foo = foo version 3
Screenshot from 2018-02-25 12-21-22.png

1.6 启动工程,访问localhost:8771/foo/dev,证明配置服务中心可以从远程程序获取配置信息


Screenshot from 2018-02-25 12-37-38.png

http请求地址和资源文件映射如下:
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties

2 构建config client

2.1 创建springboot项目作为config client,命名为config-client


Screenshot from 2018-02-25 12-47-24.png

2.2 创建后的pom.xml文件(引入config client,web依赖)


Screenshot from 2018-02-25 12-50-44.png

2.3 配置bootstrap.properties文件

Screenshot from 2018-02-25 12-56-24.png

spring.cloud.config.label 指明远程仓库的分支
spring.cloud.config.profile 环境配置
dev开发环境
test测试环境
pro正式环境
spring.cloud.config.uri= http://localhost:8771/指明配置服务中心的网址

2.4 启动类写一个API接口“/hi”,返回从配置中心读取的foo变量的值


Screenshot from 2018-02-25 13-04-24.png

2.5 启动工程,访问localhost:8772/hi,说明config-client从config-server获取了foo的属性,而config-server是从git仓库读取的


Screenshot from 2018-02-25 13-08-18.png

2.5.1 如图所示


Screenshot from 2018-02-25 13-10-18.png

未完待续......

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容