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上,网址为:

https://github.com/YUANGANGCHENG/spring-cloud-config.git

  • 配置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 属性配置修改为其他环境即可。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringCloud Config配置中心原理以及环境切换方式 - Python技术站

(0)
上一篇 2023年5月25日
下一篇 2023年5月25日

相关文章

  • C++ OpenCV绘制简易直方图DrawHistImg

    下面是对于C++ OpenCV绘制简易直方图的完整攻略。 什么是直方图? 直方图是一种图表,用于表示数据集中各元素频度分布情况的统计表。在计算机视觉中,直方图一般用来表示一幅图像中各个像素值所占的比例。 OpenCV绘制简易直方图的函数 在OpenCV中,我们可以使用 cv::calcHist 函数来计算图像的直方图,然后使用 cv::normalize 函…

    人工智能概论 2023年5月25日
    00
  • crontab执行结果未通过发送mail通知用户的方法

    下面是对于“crontab执行结果未通过发送mail通知用户的方法”的完整攻略: 1. 确定邮件服务商和配置邮件发送程序 要发送邮件,需要一些邮件服务商和程序的支持。在这里,我们以Gmail服务商和mutt程序为例子,演示如何设置。 打开Gmail账户,进入到账户安全页面,启用两步验证,并获取一个App密码,以便使用该密码来代替登录密码进行账户操作。 安装、…

    人工智能概览 2023年5月25日
    00
  • Python 虚拟空间的使用代码详解

    Python 虚拟空间指的是根据需要随时创建的一个私有的 Python 环境,用于开发和测试。一个常用的 Python 虚拟空间工具是 virtualenv,本文将深入探讨如何使用 virtualenv,包括安装virtualenv、创建 Python 虚拟环境、以及如何使用虚拟环境来安装 Python 库等操作。 安装 virtualenv 在使用 vir…

    人工智能概论 2023年5月25日
    00
  • django之跨表查询及添加记录的示例代码

    下面我将为您详细讲解“django之跨表查询及添加记录的示例代码”的攻略。 1. 跨表查询 在Django中,跨表查询可以使用related_name属性实现。related_name属性定义了反向查询时使用的名称。 例如,我们有两个模型:Author和Book。一个作者可以写多本书,因此会有一个外键将书籍与作者关联起来。在查询时,我们希望获得一个作者的所有…

    人工智能概论 2023年5月24日
    00
  • 网易有道词典笔3怎么样 网易有道词典笔3全面评测

    网易有道词典笔3全面评测 网易有道词典笔3概述 网易有道词典笔3是网易出品的一款支持语音翻译、拍照翻译、手写输入等多种功能的智能翻译词典笔。拥有7个国家语言支持,辞书库丰富,字典更新及时。 网易有道词典笔3怎么样 外观设计 网易有道词典笔3外观时尚,采用黑色硅胶材质,手感舒适。笔身顶部为可旋转的语音输入按钮和翻译键,底部为USB充电接口和重置键。笔的重量轻巧…

    人工智能概览 2023年5月25日
    00
  • 浅析在线影视点播巨头Netflix的信息处理架构

    浅析在线影视点播巨头Netflix的信息处理架构 1. Netflix的信息处理架构概述 Netflix作为一家在线影视点播巨头,它的信息处理架构是非常复杂和先进的。简单来说,Netflix的信息处理架构可以分为以下几个层次: 数据采集层:Netflix通过各种方式采集用户行为数据,例如服务器日志、用户访问记录和设备数据等。 实时流处理层:Netflix使用…

    人工智能概览 2023年5月25日
    00
  • 为高负载网络优化Nginx和Node.js的方法

    为高负载网络优化Nginx和Node.js的方法 当我们的网络流量越来越大时,我们需要对我们的服务器进行优化,以确保它可以处理更多的请求。这篇攻略将介绍为高负载网络优化Nginx和Node.js的一些方法,以确保您的网站可以快速地响应用户请求。 缓存静态资源 静态资源往往是占用服务器带宽的主要原因。通过设置缓存,我们可以减少对服务器的请求。Nginx和Nod…

    人工智能概览 2023年5月25日
    00
  • tensorflow基本操作小白快速构建线性回归和分类模型

    TensorFlow基本操作小白快速构建线性回归和分类模型 TensorFlow是谷歌开源的深度学习框架,近年来深受广大开发者的喜爱。本文将介绍TensorFlow基本操作,通过构建线性回归和分类模型的示例,展示如何使用TensorFlow搭建并训练机器学习模型。 TensorFlow基本操作 张量(Tensor) TensorFlow中,所有的数据都是通过…

    人工智能概论 2023年5月25日
    00
合作推广
合作推广
分享本页
返回顶部