配置Config Server
通过之前的介绍我们知道Config Server读取配置文件有2种方式:
一种是从本地仓库中读取并缓存到Config Server项目中;
另外一种是从远程仓库读取(这里我们以git为例)并缓存到Config Server项目中供Config Client获取。
所以下面我们会这两种不同的方式搭建Config Server(其实只是application.yml配置不同而已)。
Config Server
从本地仓库读取配置文件
本地仓库存储配置主要用于我们日常应用中的开发和调试,当我们的应用发布后就可以使用远程git仓库存储配置,我们可以设置一个多环境配置,在本地与线上配置间来回切换。
从本地仓库获取配置信息需要分两个部分完成,一个部分是配置本地读取方式的Config Server端,另外一个部分就是配置读取本地配置的Config Client端。
1.本地存储Config Server搭建
① 通过IDEA工具创建一个名为“config-server”的Spring Boot工程,考虑到我们需要对配置中心进行服务管理以及后面需要实现配置中心的高可用集群,所以我们需要把它配置成一个Eureka Client,配置的方式跟我们之前配置时类似。
在项目的pom.xml文件中添加spring-cloud-config-server依赖,如程序清单14-1所示。
② 为项目创建YML配置文件,
分别为本地存储环境application.yml、git存储环境application-pro.yml。
然后我们在application.yml文件中配置端口号、项目名称、Config Server信息,如程序清单14-2所示。
从程序清单中的注释可以看出Config Server默认从应用的src/main/resources目录下搜索配置文件,所以我们在项目的resources文件夹下创建config文件夹,并在里面创建一个
2.本地存储Config Client搭建 其实Config Client是配置在各个业务服务项目中的,这里为了方便读书快速学会Config的使用,我们新建一个名为“config-client”的Spring Boot项目,通过Config Server来获取本地存储配置信息。
① 新建一个名为“config-client”的Spring Boot项目。并在项目的pom.xml文件中添加Eureka Client、Web和Config Client的依赖,如程序清单14-4所示。
② 在config-client项目下的resources目录里面创建一个bootstrap.yml配置文件。
注意,此时的配置文件不是application.yml,bootstrap.yml的不同之处在于它加载的优先级高于应用程序运行时执行的application.yml文件。
如果我们配置的是application.yml,那么程序直接就把application.yml的配置加载了,即使后续从Config Server中读取到了配置也不会生效,所以我们这里使用bootstrap.yml才能够正确读取并加载配置信息。
在bootstrap.yml中就可以配置一些Config Server读取的配置,如程序清单14-5所示。
③ 创建一个controller包,并在controller包下创建一个读取配置的ConfigController类,通过@Value注解读取Yml文件配置的方式,设计访问Config Server读取本地文件的接口,如程序清单14-6所示。
然后在浏览器中访问“http://localhost:7031/config/getVersion”查看是否读取成功,结果如图所示。
、
Config Server 从git仓库读取配置文件
Config Server如果从git仓库读取配置文件,则需要我们提前创建一个git仓库,具体的开发步骤如下。
① 在远程git上创建一个仓库,这里我们使用Gitee来创建一个名为“config”的公开仓库。并将config-client-dev.yml文件上传到git仓库,如图所示。
git仓库的存储方式跟本地存储基本上都一样,只需在YML文件中把从本地存储获取改为从git仓库获取。
② 在项目config-server中修改Config Server获取方式为git,主要是配置git仓库地址、git分支名、连接git的账号/密码或者SSH(Secure Shell,安全外壳)连接方式的private-key(私钥),如程序清单14-7所示。