一、Spring Cloud Config配置中心原理简介
Spring Cloud Config是一个基于Spring Boot的配置管理工具,它提供集中的外部配置管理解决方案。通过Spring Cloud Config,我们可以将应用程序的配置中心独立出来,不必被绑定到特定的开发、测试、生产环境,这样我们就能够将配置独立存储并管理,方便随时更新,做到配置的版本控制。Spring Cloud Config中心可以存储两类配置:一类是应用程序级别的配置,另一类是环境级别的配置。这种配置中心的好处在于,我们可以在不改变应用程序代码的情况下快速的应对服务器运行环境的变化,降低了配置修改的风险。
二、Spring Cloud Config环境切换方式
当配置文件比较少时,可以将配置文件存储在Git服务器中,通过Spring Cloud Config从Git服务器中拉取配置文件。
在Git上新建一个Repository,例如:配置文件存放在GitHub上,网址为:
在Spring Cloud Config的配置文件中,需要增加以下配置:
spring:
cloud:
config:
server:
git:
uri: https://github.com/YUANGANGCHENG/spring-cloud-config.git # Git URI
searchPaths: config-repo
username: ${SECRETS_GITHUB_USERNAME} # your GitHub username
password: ${SECRETS_GITHUB_PASSWORD} # your GitHub personal access token (PAT), note: use an encrypted value
label: main # Git branch
profile: dev # default profile
当配置文件数量比较大时,使用文件系统存储相对比较方便,Spring Cloud Config也提供了从文件系统中读取配置文件的方式,读取文件可以更快速和稳定,适合大型项目的应用。
新建文件夹 config-repo ,在其中新建dev文件夹,编写application.yml文件,例如:
foo:
email: foo-dev@example.com
将config-repo文件夹放到D盘目录下,D:\config-repo。
在Spring Cloud Config的配置文件中,需要增加以下配置:
spring:
cloud:
config:
server:
native:
searchLocations: file:///D:/config-repo
label: main # Git branch
profile: dev # default profile
三、环境切换示例
不同环境下配置不同,如:
spring:
datasource:
url: jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC&characterEncoding=utf-8
username: root
password: root
spring:
datasource:
url: jdbc:mysql://192.168.1.216:3306/test2?useSSL=false&serverTimezone=UTC&characterEncoding=utf-8
username: test
password: test
在Git中将两个配置文件进行版本控制。
配置文件夹下,dev环境下的配置文件为:
foo:
email: foo-dev@example.com
prod环境下的配置文件为:
foo:
email: foo-prod@example.com
在 Spring Cloud Config 中设置 profile 为 dev 或 prod 即可。如:
spring:
cloud:
config:
server:
native:
searchLocations: file:///D:/config-repo
label: main
profile: prod
当开发人员需要切换配置环境时,只需将 profile 属性配置修改为其他环境即可。
本文链接:http://task.lmcjl.com/news/14329.html