博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringCloud 教程 | 第六篇: 分布式配置中心 (Spring Cloud Config)
阅读量:6227 次
发布时间:2019-06-21

本文共 6229 字,大约阅读时间需要 20 分钟。

转载请标明出处:

本文出自
在上一篇文章讲述zuul的时候,已经提到过,使用配置服务来保存各个服务的配置文件。它就是Spring Cloud Config。

一、简介

在分布式系统中,spring cloud config 提供一个服务端和客户端去提供可扩展的配置服务。我们可用用配置服务中心区集中的管理所有的服务的各种环境配置文件。配置服务中心采用git的方式存储配置文件,因此我们很容易部署修改,有助于对环境配置进行版本管理。

二、构建Config Server

创建一个spring-boot项目,取名为config-server,其pom.xml:

4.0.0
com.forezp
config-server
0.0.1-SNAPSHOT
jar
config-server
Demo project for Spring Boot
org.springframework.boot
spring-boot-starter-parent
1.5.2.RELEASE
UTF-8
UTF-8
1.8
org.springframework.cloud
spring-cloud-config-server
org.springframework.boot
spring-boot-starter-test
test
org.springframework.cloud
spring-cloud-starter-eureka
org.springframework.cloud
spring-cloud-dependencies
Camden.SR6
pom
import
org.springframework.boot
spring-boot-maven-plugin
spring-milestones
Spring Milestones
https://repo.spring.io/milestone
false
复制代码

在程序的入口Application类加上@EnableConfigServer注解开启配置服务器。

@SpringBootApplication@EnableConfigServerpublic class ConfigServerApplication {    public static void main(String[] args) {        SpringApplication.run(ConfigServerApplication.class, args);    }}复制代码

需要在配置中心配置下:

spring.application.name=config-serverserver.port=8888spring.cloud.config.server.git.uri=https://github.com/forezp/SpringcloudConfig/spring.cloud.config.server.git.searchPaths=respospring.cloud.config.label=masterspring.cloud.config.server.git.username=your usernamespring.cloud.config.server.git.password=your password复制代码
  • spring.cloud.config.server.git.uri:配置git仓库地址
  • spring.cloud.config.server.git.searchPaths:配置仓库路径
  • spring.cloud.config.label:配置仓库的分支
  • spring.cloud.config.server.git.username:访问git仓库的用户名
  • spring.cloud.config.server.git.password:访问git仓库的用户密码

远程仓库 中又个文件config-client-dev.properties文件中有一个属性:

foo = foo version 3

启动程序:访问

{
"name":"foo","profiles":["dev"],"label":"master","version":"792ffc77c03f4b138d28e89b576900ac5e01a44b","state":null,"propertySources":[]}复制代码

证明配置服务中心可以从远程程序获取配置信息。

http请求地址和资源文件映射如下:

  • /{application}/{profile}[/{label}]
  • /{application}-{profile}.yml
  • /{label}/{application}-{profile}.yml
  • /{application}-{profile}.properties
  • /{label}/{application}-{profile}.properties

三、构建一个config client

重新创建一个springboot项目,取名为config-client,其pom文件:

4.0.0
com.forezp
config-client
0.0.1-SNAPSHOT
jar
config-client
Demo project for Spring Boot
org.springframework.boot
spring-boot-starter-parent
1.5.2.RELEASE
UTF-8
UTF-8
1.8
org.springframework.cloud
spring-cloud-starter-config
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
org.springframework.cloud
spring-cloud-dependencies
Dalston.RC1
pom
import
org.springframework.boot
spring-boot-maven-plugin
spring-milestones
Spring Milestones
https://repo.spring.io/milestone
false
复制代码

其配置文件:

spring.application.name=config-clientspring.cloud.config.label=masterspring.cloud.config.profile=devspring.cloud.config.uri= http://localhost:8888/server.port=8881复制代码
  • spring.cloud.config.label 指明远程仓库的分支
  • spring.cloud.config.profile

    • dev开发环境配置文件
    • test测试环境
    • pro正式环境
  • spring.cloud.config.uri= 指明配置服务中心的网址。

程序的入口类:

@SpringBootApplication@RestControllerpublic class ConfigClientApplication {    public static void main(String[] args) {        SpringApplication.run(ConfigClientApplication.class, args);    }    @Value("${foo}")    String foo;    @RequestMapping(value = "/hi")    public String hi(){        return foo;    }}复制代码

打开网址访问:

foo version 3

这就说明,config-client从config-server获取了foo的属性,而config-server是从git仓库读取的,如图:

Azure (2).png

本文源码下载:

四、参考资料

优秀文章推荐:

你可能感兴趣的文章
重庆市交通行政执法总队发布春运“避堵”线路图
查看>>
北京所有社区卫生服务中心今年将全部“先诊疗、后结算”
查看>>
QNAP(威联通)联合创始人郭博达先生一行到访
查看>>
浏览器中唤起native app || 跳转到应用商城下载(一)
查看>>
springboot(十七):使用Spring Boot上传文件
查看>>
Vue中你不知道但却很实用的黑科技
查看>>
阿里云消息中间件(MQ)探秘
查看>>
基础排序算法详解与优化
查看>>
与我一起学正则
查看>>
练就Java24章真经—你所不知道的工厂方法
查看>>
手游中实时音视频的开发经验与实现技巧
查看>>
saiku+kettle整合(十)缓存控制
查看>>
微信支付,支付宝支付,银联支付——三大支付总结
查看>>
Android Sunflower 带您玩转 Jetpack
查看>>
Android 应用兼容性最佳实践 | 中文教学视频
查看>>
SQL语句笔记
查看>>
iOS笔记之数组排序
查看>>
从零开始撸一个Fresco之硬盘缓存
查看>>
0901 - 虽已马不停蹄,无奈时光飞逝
查看>>
keep-loader for webpack
查看>>