关键词

SpringCloud Config配置中心原理以及环境切换方式

一、Spring Cloud Config配置中心原理简介

Spring Cloud Config是一个基于Spring Boot的配置管理工具,它提供集中的外部配置管理解决方案。通过Spring Cloud Config,我们可以将应用程序的配置中心独立出来,不必被绑定到特定的开发、测试、生产环境,这样我们就能够将配置独立存储并管理,方便随时更新,做到配置的版本控制。Spring Cloud Config中心可以存储两类配置:一类是应用程序级别的配置,另一类是环境级别的配置。这种配置中心的好处在于,我们可以在不改变应用程序代码的情况下快速的应对服务器运行环境的变化,降低了配置修改的风险。

二、Spring Cloud Config环境切换方式

  1. 基于Git版本管理

当配置文件比较少时,可以将配置文件存储在Git服务器中,通过Spring Cloud Config从Git服务器中拉取配置文件。

  • 配置Git环境

在Git上新建一个Repository,例如:配置文件存放在GitHub上,网址为:

  • 配置Spring Cloud Config

在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
  1. 基于文件系统存储

当配置文件数量比较大时,使用文件系统存储相对比较方便,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的配置文件中,需要增加以下配置:

spring:
  cloud:
    config:
      server:
        native:
          searchLocations: file:///D:/config-repo
      label: main  # Git branch
      profile: dev  # default profile

三、环境切换示例

  1. 基于Git版本管理

不同环境下配置不同,如:

  • dev 环境,需要连接开发数据库,配置application-dev.yml:
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC&characterEncoding=utf-8
    username: root
    password: root
  • prod 环境,需要连接生产数据库,配置application-prod.yml:
spring:
  datasource:
    url: jdbc:mysql://192.168.1.216:3306/test2?useSSL=false&serverTimezone=UTC&characterEncoding=utf-8
    username: test
    password: test

在Git中将两个配置文件进行版本控制。

  1. 基于文件系统存储

配置文件夹下,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

展开阅读全文