Config的知识点

通过前面 3 节的介绍,我们已经可以使用配置中心了,但是有些知识点仍然需要介绍,例如 Git 和动态刷新配置的知识点。

Config的Git介绍

关于 Git 的介绍,主要有两个部分,一个是 Git 中的配置文件命名规则,另一个是如何配置 Git。

Config配置文件命名规则

在前面的实例中,在 Git 上提交了几个配置文件,那么这几个配置文件的名字可以随意命名,还是有什么规则?这里就说明一下配置文件的命名规则,主要有三个关键字。

  • application:应用的名称。

  • profile:对应的环境,例如 dev 或者 test。

  • label:分支,例如实例中使用过 master 或者 release。

访问配置文件信息的 URL 如下。

  • /{application}/{profile}/{label}。

  • /{application}-{profile}.yml。

  • /{label}/{application}-{profile}.yml。

  • /{application}-{profile}.properties。

  • /{label}/{application}-{profile}.properties。

通过上面的几种形式,我们可以构建各种不同的 URL 来访问不同的配置文件。

配置Git

Config 默认的仓库是 Git。在 Config 服务端,采用的也是 Git,因为 Git 非常适用于存储配置文件,可以方便地使用第三方工具或者浏览器对内容进行管理更新和分支版本控制。Git 的版本控制是一些配置中心不具备的,使用 Git,则使得应用不同的部署,可以从 Git 上获取不同的配置文件版本。

由于 Config 默认采用的仓库是 Git,因此它的配置也非常简单,只需要在配置文件中添加三个配置项即可。

spring.cloud.config.server.git.uri=https://×××.com/×××
spring.cloud.config.server.git.username=13544408
spring.cloud.config.server.git.password=xhfx889cj

Config 除了支持 Git,也可以使用 SVN。首先,添加如下依赖。

<dependency>
   <groupId>org.tmatesoft.svnkit</groupId>
   <artifactId>svnkit</artifactId>
</dependency>

然后,在 application.properties 配置文件中添加属性控制,属性如下。

spring.cloud.config.server.svn.uri=https://×××.com/×××
spring.cloud.config.server.svn.username=13544408
spring.cloud.config.server.svn.password=xhfx889cj

动态刷新配置

在 Config 中,虽然我们解决了一些本章开始说的普通配置文件不足的问题,但最重要的部分,动态刷新配置没有说明,在这里进行说明。

我们需要修改 config-client 的配置项实现动态刷新,代码如下所示。

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

然后,访问 localhost:8093/refresh,就可以发现配置项被修改了。