接上一章节构建 Springcloud config 配置中心仓库及客户端,这里讲讲Springcloud config 的工作原理及安全保护
Springcloud config 的工作原理
Spring cloud Config Server 的工作过程如下图所示:
1、首先需要一个远程 Git 仓库,平时测试可以使用 gitee,在实际生产环境中,需要自己搭建一个 Git 服务器,远程 Git 仓库的主要作用是用来保存我们的配置文件;
2、除了远程 Git 仓库之外,我们还需要一个本地 Git 仓库,每当 Config Server访问远程 Git 仓库时,都会克隆一份到本地,这样当远程仓库无法连接时,就直接使用本地存储的配置信息;
3、微服务 A、微服务 B 则是我们的具体应用,这些应用在启动的时会从 Config Server 中获取相应的配置信息;
4.当微服务 A、微服务 B 尝试从 Config Server 中加载配置信息的时候,Config Server 会先通过 git clone 命令克隆一份配置文件保存到本地;
5、由于配置文件是存储在 Git 仓库中,所以配置文件天然具有版本管理功能;
Springcloud config 的安全保护
生产环境中我们的配置中心肯定是不能随随便便被人访问的,我们可以加上适当的保护机制,由于微服务是构建在 Spring Boot 之上,所以整合 Spring Security是最方便的方式。
1、在 springcloud config server 项目添加依赖:
<!--整合spring security-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
2、在 springcloud config server 项目的 application.properties 中配置用户名密码:
spring.security.user.name=lixuanhong
spring.security.user.password=123456
3、在 springcloud config client 上 bootstrap.properties 配置用户名和密码:
spring.cloud.config.username=lixuanhong
spring.cloud.config.password=123456
4、最后测试验证;
访问config server端 则需要验证了
- 验证完 才能访问到读取的信息
访问config client 端 由于我们配置了用户名密码 则可以直接访问