Spring Cloud Config 是用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持,它包含两个部分:
1、服务端:分布式配置中心,它是一个独立的微服务应用,用来连接配置仓库并为客户端提供获取配置信息接口。
2、客户端:微服务架构中的各个应用或基础设施,他们通过指定的配置中心来管理应用资源与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置中心。
默认采用Git
来存储配置信息,也支持其它方式的支持,比如SVN
和本地化文件系统
,本节使用Git
实现配置中心内容。
- 准备工作
- 我是使用码云来创建的仓库,存放配置信息
- 在码云上创建一个仓库
config
(随意),然后在仓库下新建一个目录config-repo
(随意)来作为配置仓库目录。 -
创建四个文件properties文件,分别用来存放各个环境的信息
image.png 4. 每个文件中创建了一个值,用来测试使用
image.png
- 构建配置中心
1.新建一个Spring Boot工程,命名为“config-server”(随意)
2.修改pom.xml,主要依赖内容如下:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
3.修改主类,使用@EnableConfigServer
开启Spring Cloud Config的服务端功能。
@SpringBootApplication
@EnableConfigServer
public class TestApplication {
public static void main(String[] args) {
SpringApplication.run(TestApplication.class, args);
}
}
4.修改application.yml文件,配置服务的基本信息和Git仓库的相关信息
spring:
application:
name: config-server
cloud:
config:
server:
git:
#Git仓库位置
uri: https://gitee.com/路径(自己修改)/config
#访问Git仓库用户名,也可以使用SSH的方式,可以不用用户名和密码
username: 用户名(自己修改)
#访问Git仓库的用户密码
password: 密码(自己修改)
#配置仓库路径下的相对搜索位置,可以配置多个
search-paths: /config-repo
server:
port: 7000
测试
构建配置中心创建好以后,可以先来测试一下是否可以正常获取我们想要的信息
访问:http://localhost:7000/configtest/prod/master
![](https://img.haomeiwen.com/i10516977/7ef3e225836b639f.png)
我们现在在回到控制台看一下打印信息那么这些内容是怎么获取的呢?回头看一下刚刚的访问地址http://localhost:7000/configtest/prod/master
这就涉及到了访问配置信息的URL与配置文件的映射关系了:
/{application}/{profile} [/{lable}]
/{application}-{profile}.yml
/{lable}/{application}-{profile}.yml/
/{application}-{profile}.properties
/{lable}/{application}-{profile}.properties
访问配置信息的URL会根据上面的关系进行映射
{lable}
对应的是Git上的分支名称,默认使用master
分支
{application}
对应的是应用名称,默认是default文件
{profile}
对应的是环境名称
所以我们刚刚的访问地址中configtest/prod/master
对应的就是master
环境下configtest
应用prod
环境对应的文件,就是configtest-prod.properties
![](https://img.haomeiwen.com/i10516977/6622a934504b252a.png)
看到配置服务器在从Git中获取配置信息后,会存储一份在config-server的文件系统中。
实质是config-server通过git clone命令将配置内容复制了一份在本地存储,然后读取这些内容并返回给微服务应用进行加载,通过Git在本地仓库的暂存,可以防止当Git仓库出现故障而引起无法加载配置信息的情况。
自己可以测试一下这种场景,将网络断开后在重新访问,看是否还能获取到配置信息。
截止到这里,我们可以确定配置服务中心已经可以正常工作了,下一节我们将会来看一下如何在微服务应用中获取配置信息。
网友评论