SpringCloud之配置中心Config(简述)

SpringCloud 配置中心

SpringCloud 可以借助git仓库实现配置中心的功能。
通过 git 进行统一的配置管理不经能够简化我们的配置方式,同时也可以借助 git 实现配置历史追溯与变更还原。

为什么要使用 Spring Cloud Config?

  • 对于分布式应用而言,通过统一的配置中心可以简化对配置的维护成本
  • 提高配置的安全性
  • 实现配置变更后的实时更新

问题: SpringCloud 的git仓库只能是 github 吗?
不是,我们可以使用任意一个 git 仓库托管我们的配置,如果可以的话我们甚至可以搭建自己的私有仓库来实现配置的托管。

Spring Cloud Config 由server 和 client 两部分组成。

  • server 用来获取远程的配置信息(默认为 Git 仓库),并且以接口的形式提供出去;

  • client 根据 server 提供的接口读取配置文件,以便于初始化自己的应用。

在这里插入图片描述
由图可见,如果我们想要实现一个 Spring Cloud Config 的话,需要首先创建一个 git 仓库,在哪里创建没关系,国外的 github 还是 国内的 gitee(码云)都可以,将这个仓库作为配置的核心仓库。如果是测试使用的仓库公开没关系,公开仓库可以在配置 Server 端的时候不用输入用户名和密码。

创建 git 仓库作为配置仓库

我们以 码云(gitee)为例,登录码云账号,然后新建一个空仓库。然后在仓库中创建一个文件夹 conf ,并在其中 创建一个文件 demo01-dev.yml,其中 demo01 是你客户端的应用名。目录结构如下:

.
└── conf
    └── demo01-dev.yml
创建 Spring Cloud Config Server 端

新建一个Maven 工程,并添加 spring cloud config server 依赖:

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

建议使用 Spring Initializer 生成,看图:
在这里插入图片描述
在生成的工程中配置 git 仓库:

# 端口
server:
  port: 8000

spring:
  application:
    # 应用名称
    name: config-server
  cloud:
    config:
      server:
        git:
          # 仓库地址
          uri: https://gitee.com/demo/config-repo.git
          # 对应 {label} 部分,即 Git 的分支
          label: master
          # 仓库文件夹名称,多个以逗号分隔
          search-paths: conf
          # git 仓库用户名(公开库可以不用填写)
          username:
          # git 仓库密码(公开库可以不用填写)
          password:

在这里插入图片描述
启动项目,访问地址:
http://localhost:8000/demo01-dev.yml
此时访问的就是我们创建的配置文件,如果还没有增加任何配置的话我们可以尝试增加一个配置然后重新访问改地址,如在demo01-dev.yml中增加配置:

hello:
  world: good world

那么当我们再次访问接口时则会得到该配置信息。
Spring Cloud Config 除了提供了上述的配置访问接口以外,还提供了了其他访问接口如:

# 这里的 label 表示 git 分支
/{application}/{profile}[/{label}]
 示例:http://localhost:8000/demo01/dev
/{application}-{profile}.yml
 示例:http://localhost:8000/demo01-dev.yml
/{label}/{application}-{profile}.yml
 示例:http://localhost:8000/master/demo01-dev.yml
/{application}-{profile}.properties
 示例:http://localhost:8000/demo01-dev.properties
/{label}/{application}-{profile}.properties
示例:http://localhost:8000/master/demo01-dev.properties
创建Spring Cloud Config Client 端

对于 Client 端而言,需要是一个 Spring Boot 项目并且依赖了:

<!-- config 依赖 -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
</dependency>
配置

要想连接 Server 端,首先需要配置连接 Server 端的相关信息,配置bootstrap.yml

spring:
  cloud:
    config:
      # 仓库地址
      uri: http://127.0.0.1:8000
      # 对应 {label} 部分,即 Git 的分支
      label: master
      # 对应 {application} 部分
      name: demo01
      # 对应 {profile} 部分
      profile: dev

然后配置 application.yml

# 端口
spring:
  application:
    # 应用名称
    name: spring-cloud-client

Spring Boot 的读取配置顺序为bootstrap.yml–>application.yml
在读取完 bootstrap.yml后连接Spring Cloud Config Server端后,application.yml即可使用Server端配置的文件选项了。

参考资料

SpringCloud之配置中心Config

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值