springcloud下的微服务-分布式配置中心(Spring Cloud Config)

参考官方文档
http://cloud.spring.io/spring-cloud-static/Dalston.SR5/multi/multi__spring_cloud_config_client.html#config-first-bootstrap

史上最简单的SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)

示意图
这里写图片描述

config-server

引入依赖

 <dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-config-server</artifactId>
 </dependency>

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

配置文件

spring:
  application:
    name: config-server

  cloud:
    config:
      label: master
      server:
        git:
          uri: https://github.com/MyBrokenHeart/springcloudconfig.git
          search-paths: test1,test2
          username:
          password:


server:
  port: 8888

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仓库的用户密码

如果Git仓库为公开仓库,可以不填写用户名和密码,如果是私有仓库需要填写

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

例如https://github.com/MyBrokenHeart/springcloudconfig/tree/master/test1
application为spring.application.name

{profile}不同开发环境下的配置,有sample, dev, test, prd

  1. dev:开发环境配置文件
  2. test:测试环境
  3. pro:正式环境

config client

只需引入依赖

  <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-config</artifactId>
 </dependency>

需添加配置文件bootstrap.properties

spring.application.name=haha
spring.cloud.config.profile=dev
spring.cloud.config.label=master
spring.cloud.config.uri= http://localhost:8888/

Spring读取顺序bootstrap.properties在application.yml前

spring.application.name为你要读取文档的名字,一定要对应上
spring.cloud.config.profile为读取的环境配置,不配置的话默认读取haha.yml
label为要读取的分支

这里写图片描述

无论是yml还是properties格式都是可以,要注意文件里面的格式一定要对,否则会读取不到,本人就因为这个问题浪费了一个小时

通过@Value即可读取到内容
github地址为https://github.com/MyBrokenHeart/springcloudconfig

@Value("${haha}")
private String foo;

如果要搭建高可用的高可用的分布式配置中心,即通过eureka注册服务,多个服务调用时负载平衡,如下
这里写图片描述
很简单,只需将config-server和config-client都注册到eureka中

在client的bootstrap.properties中加上

spring.cloud.config.discovery.enabled=true
spring.cloud.config.discovery.serviceId=config-server

spring.cloud.config.discovery.enabled 是从配置中心读取文件。
spring.cloud.config.discovery.serviceId 配置中心的servieId,即服务名而不是ip
如果配置服务部署多份,通过负载均衡,从而高可用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值