分布式配置中心Config(六)

1.介绍

Spring Cloud Config 是 Spring Cloud 团队创建的一个全新项目,用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持,它分为服务端与客户端两个部分。其中服务端也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置仓库并为客户端提供获取配置信息、加密 / 解密信息等访问接口;而客户端则是微服务架构中的各个微服务应用或基础设施,它们通过指定的配置中心来管理应用资源与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息。Spring Cloud Config 实现了对服务端和客户端中环境变量和属性配置的抽象映射,所以它除了适用于 Spring 构建的应用程序之外,也可以在任何其他语言运行的应用程序中使用。由于 Spring Cloud Config 实现的配置中心默认采用 Git 来存储配置信息,所以使用 Spring Cloud Config 构建的配置服务器,天然就支持对微服务应用配置信息的版本管理,并且可以通过 Git 客户端工具来方便的管理和访问配置内容。当然它也提供了对其他存储方式的支持,比如:SVN 仓库、本地化文件系统。

2.Config的配置和使用

2.1新建一个server端

2.2 添加依赖和配置

依赖:

 

配置文件:

Spring Cloud Config 也提供本地存储配置的方式。我们只需要设置属性 spring.profiles.active=native,Config Server 会默认从应用的 src/main/resource 目录下检索配置文件。虽然 Spring Cloud Config 提供了这样的功能,但是为了支持更好的管理内容和版本控制的功能,还是推荐使用 Git 的方式。

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

可以如下配置:

spring.cloud.config.server.git.username:访问 Git 仓库的用户名
spring.cloud.config.server.git.password:访问 Git 仓库的用户密码

2.3 添加注解支持

在启动类上添加@EnableConfigServer注解,激活对配置中心的支持

2.4 启动和测试

首先测试一下Server端能否读到github上的配置信息,在github上创建一个文件夹config-file,里面创建三个配置文件:config-client-dev.yml,  config-client-pro.yml,  config-client-test.yml。都添加一个属性config.demo,分别添加属性值:dev,pro,test

启动服务,访问http:localhost:7006/config-client/dev。返回信息如下:

上述的返回的信息包含了配置文件的位置、版本、配置文件的名称以及配置文件中的具体内容,说明 Server 端已经成功获取了 Git 仓库的配置信息。如果直接查看配置文件中的配置信息可以访问:http:localhost:7006/config-client-dev.yml

返回:

 

仓库中的配置文件会被转换成 Web 接口,访问可以参照以下的规则:

  1. /{application}/{profile}[/{label}]
  2. /{application}-{profile}.yml
  3. /{label}/{application}-{profile}.yml
  4. /{application}-{profile}.properties
  5. /{label}/{application}-{profile}.properties

上面的 URL 会映射 {application}-{profile}.yml 对应的配置文件,其中 {label} 对应 Git 上不同的分支,默认为 master。以 config-client-dev.yml 为例子,它的 application 是 config-client,profile 是 dev。

3.获取配置中心信息

3.1 新建一个client端

3.2 添加依赖和配置

添加依赖:

配置文件需要两个:application.yml和bootstrap.yml,配置分别如下

application.yml

bootstrap.yml

特别注意:上面这些与 Spring Cloud Config 相关的属性必须配置在 bootstrap.yml 中,config 部分内容才能被正确加载。因为 config 的相关配置会先于 application.yml,而 bootstrap.yml 的加载也是先于 application.yml。

3.3 添加注解支持

启动类不用修改

3.4启动和测试

添加一个Controller类,用来测试是否能获取到Server端的信息

启动服务,访问:http:localhost:7007/info

正常返回:

这就说明config-client从config-server获取了config.demo的属性,而config-server是从git仓库读取的。

源码地址:https://github.com/wxkhz/springcloud

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值