1、Spring Cloud Config的介绍
在实际操作中会出现多个微服务操作同一个数据库的情况,那么对于每个微服务都需要重复配置数据库信息,而且当数据库信息改动时也难以维护。因此一套集中的、动态的配置管理设施是必不可少的。
SpringCloud Config为微服务架构中的微服务提供集中化的外部配置支持,配置服务器为各个不同微服务应用的所有环境提供了一个中心化的外部配置。SpringCloud Config 具体分为客户端和服务端两部分。
具体作用:
- 集中管理配置文件;
- 不同运行环境不同的配置,动态化地进行配置更新,分环境部署(dev/test/prod/release)
- 运行期间动态调整配置,不需要在每个服务部署的机器上编写配置文件,配置变动各个微服务能够自动拉取信息
由于常规配置管理有很大的缺点,所以采用Spring Cloud Config集中式的配置中心来管理每个服务的配置信息Spring Cloud Config在微服务分布式系统中,采用Server 服务端和 Client 客户端的方式来提供可扩展的配置服务。
服务端提供配置文件的存储,以接口的形式将配置文件的内容提供出去;客户端通过接口获取数据、并依据此数据初始化自己的应用配置中心负责管理所有服务的各种环境配置文件。
配置中心默认采用Git的方式存储配置文件,因此我们可以很容易的部署和修改,有助于环境配置进行版本管理。
2、Spring Cloud Config解决问题
Spring Cloud Config 解决了微服务配置的中心化、版本控制、平台独立、语言独立
等问题。
其特性如下:
- 提供服务端和客户端支持(Spring Cloud Config Server 和 Spring Cloud Config Client)
- 集中式管理分布式环境下的应用部署
- 属性值的加密和解密(对称加密和非对称加密)
- 基于 Spring 环境,无缝与 Spring 应用集成
- 可用于任何语言开发的程序
- 默认实现基于 Git,可以进行版本管理接
3、Spring Cloud Config使用
(1)环境准备
-
远程仓库:gitee
将配置文件上传上去
-
搭建本地客户端
添加依赖
[1]父工程
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.12.RELEASE</version>
</parent>
<properties>
<spring-cloud.version>Hoxton.SR1</spring-cloud.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
[2]模块
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>