Config概述
在分布式系统中,项目越来越多,每个项目都有自己的配置文件,对配置文件的统一管理就成了一种需要,SpringCloud-Config就提供了对分布式项目配置文件的统一管理
SpringCloud-Config包含Client和Service两部分,service提供配置文件的存储,以接口的形式将配置文件提供出去,client通过接口获取数据,依据此数据初始化应用
Config如何使用?
1.首先搭建一个config工程
2.创建4个配置文件推送到配置的git地址
创建配置文件
上传码云后
3.启动项目访问测试,访问成功时会自动clone一份保存到本地(日志信息可以看到)
Config客户端测试
1.首先搭建一个config-client工程
2.添加maven依赖
<dependencies>
<!--web功能的起步依赖,以功能为单位,底层帮我们集成各种坐标-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
</dependencies>
3.创建bootstrap.properties文件如下图
4.创建controller类访问测试
5.测试结果(成功获取属性值)
Config工作原理
1.首先需要远程仓库,测试环境可以使用GitHub,实际生产自行搭建,主要是用来保存配置文件
2.除了远成仓库,我们还需要本地仓库,每当服务启动时,克隆一份保存到本地仓库,这样即使远程的仓库连接不上,可以使用本地仓库
3.每一个微服务启动会从config服务获取配置信息,加载配置信息的时候,config服务会克隆一份配置文件保存到本地
4.由于配置文件存在git仓库中,所以天然具有版本控制能力
Config安全保护
实际开发中,配置中心不可能随便被访问,我们需要适当的保护机制,如何做呢?
1.config服务添加依赖
<!--整合spring-security实现安全保护-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
2.config服务配置文件中配置用户名和密码
3.config-client配置相同的用户名和密码
4.启动config服务端和客户端 测试验证
5.配置错误,或者密码不正确的话,可以自己动手试试
6.访问config服务端需要登录验证