【微服务】分布式配置中心

随着微服务划分越来越多,对运维工程师来说压力还挺挺大的,今天要改58号,改错了怎么办?

分布式系统面临问题:配置问题,每个微服务都有配置信息,要是上百个,管理起来将很困难。

分布式配置中心

集中式管理配置:
【微服务】分布式配置中心_第1张图片
Config Server本身就是个微服务,A,B,C统一交给Server来管理,Server和Git打交道,将配置托管到Git Hub,Git Hub一旦有提交,有更新,Server上可以获得最新信息,这样A,B,C等获得的也是最新的。

这样做的好处:
SpringCloud Config为微服务提供了集中化的外部配置支持,为各不同微服务应用的所有环境提供了一个中心化外部配置。

比如,今天要修改数据库信息,DBA要通知开发工程师修改;但是我们运维人员不懂java怎么改呢,这时,他们可以pull git上的配置来修改,很方便。

操作步骤:

一、配置文件提交到GitHub:
1、Git Hub上建立仓库:
【微服务】分布式配置中心_第2张图片
2、将代码clone到本地,点开,创建yml配置文件(注意要以utf-8保存,否则github会因为中文乱码读错)
【微服务】分布式配置中心_第3张图片
3、将文件提交到git:

$ git add .
$ git commit -m "init file"
$ git push origin master

二、Config Server微服务搭建:
1、pom:


<dependency>
    <groupId>org.springframework.cloudgroupId>
    <artifactId>spring-cloud-config-serverartifactId>
dependency>

2、application.yml编辑:

server: 
  port: 3344 

spring: application: name: cloud-config cloud: config: server: git: uri: git@github.com:12wanghongwei/cloud-config.git #GitHub上面的git仓库名字

3、启动类添加注解:@EnableConfigServer

4、测试运行:http://config-3344.com/application-dev.yml (我在本地hosts配置了ip和域名config-3344.com)

这里的测试url有几种方式都可以访问到:
- /{application}-{profile}.yml
- /{application}/{profile}/{label}

三、客户端获取配置
1、pom引入客户端的jar
2、yml

  • application.yml-用户级资源配置项
  • Bootstrap.yml-系统级、优先级更高 (Bootstrap context负责从外部源加载配置属性并解析配置,默认不会被本地配置覆盖)

新增Bootstrapl.yml保证Bootstrap context和application context配置分离。

你可能感兴趣的:(【微服务】)