开宗明义
在分布式系统中,由于服务数量巨大,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。在Spring Cloud中,有分布式配置中心组件spring cloud config ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中。在spring cloud config 组件中,分两个角色,一是config server,二是config client
1 构建config server
1.1 创建springboot项目作为config server,命名为config-server
1.2 创建后的pom.xml文件(引入eureka,config server依赖)
1.3 启动类ConfigServerApplication ,加上@EnableConfigServer注解开启配置服务器的功能
1.4 配置application.properties文件
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.6 启动工程,访问localhost:8771/foo/dev,证明配置服务中心可以从远程程序获取配置信息
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
2.2 创建后的pom.xml文件(引入config client,web依赖)
2.3 配置bootstrap.properties文件
spring.cloud.config.label 指明远程仓库的分支
spring.cloud.config.profile 环境配置
dev开发环境
test测试环境
pro正式环境
spring.cloud.config.uri= http://localhost:8771/指明配置服务中心的网址
2.4 启动类写一个API接口“/hi”,返回从配置中心读取的foo变量的值
2.5 启动工程,访问localhost:8772/hi,说明config-client从config-server获取了foo的属性,而config-server是从git仓库读取的
2.5.1 如图所示
未完待续......