配置管理 —— SpringCloud Config

概述

Config 为分布式系统提供统一的配置管理工具,应用程序在使用过程中可以像使用本地配置一样方便地添加、访问、修改配置中心的配置

Config 支持将配置存储在配置中心的本地服务器或 Git 仓库,通常将配置文件集中放置在一个 Git 仓库,然后通过配置中心(Config Server)来管理所有的配置文件。当某个服务实例需要添加或更新配置时,只需将该服务实例的本地配置文件进行修改,然后推送到 Git 仓库,其他服务实例通过配置中心(Config Server)就可以从 Git 仓库获取最新的配置信息。对于配置中心(Config Server)来说,每个服务实例都相当于客户端(Config Client)。为了保证系统的稳定,配置中心(Config Server)可以进行多副本集群部署

Config Server 的定义及应用

假设 Git 仓库的地址为 https://github.com/xxx/xxxxx,在该仓库的 SpringCloudConfig 路径下有一个配置文件 application.properies

创建一个 Config Server 分为以下三步:

在 pom.xml 文件中加入依赖

xml 复制代码
<dependencies>
  <!-- starter-config 依赖 -->
  <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
  </dependency>
  <!-- spring-boot-starter-web 表示项目为 Web 工程 -->
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactld>
  </dependency>
  <!-- 系统运维监控组件 -->
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
  </dependeney>
  <!-- config-server 依赖 -->
  <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-config-server</artifactId>
  </dependeney>
</dependencies>

添加 @EnableConfigServer

java 复制代码
@SpringBootApplication
@EnableConfigServer
public class BootApplication {
  public static void main(String[] args) {
    SpringApplication.run(BootApplication.class, args) ;
  }
}

配置 application.properties 文件,设置 Git 仓库的基本信息

properties 复制代码
#设置配置中心的端口号
server.port=9000
#设置配置中心的名称
spring.cloud.config.server.default-application-name=config-server
#设置Git仓厍的地址
spring.cloud.config.server.git.uri=https://github.com/xxx/xxxxx
#设置仓库的路径,配置文件的路径为https://github.com/xxx/xxxxx/SpringCloudConfig
spring.cloud.config.server.git.search-paths=SpringCloudConfig
#设置仓库的分支
spring.cloud.config.label=master
#访问Git仓库的用户名
spring.cloud.config.server.git.username=username
#访间Git仓库的用户密码,如果Git仓库为公开仓库,则可以不填写用户名和密码
spring.cloud.config.server.git.password=password

Config Client 的定义及应用

配置中心的使用分为以下三步:

在 pom.xml 文件中加入依赖

xml 复制代码
<dependencies>
  <!-- starter-config 依赖 -->
  <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
  </dependency>
  <!-- spring-boot-starter-web 表示项目为 Web 工程 -->
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactld>
  </dependency>
  <!-- 系统运维监控组件 -->
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
  </dependeney>
</dependencies>

配置 bootstrap.properties 文件,设置应用程序从哪个服务获取配置信息,并且可以通过 spring.cloud.config.profile 指定运行环境

properties 复制代码
server.port=9001
spring.application.name=config-client
#远程仓库的分支
spring.cloud.config.label=master
#运行环境
spring.cloud.config.profile=dev
#设置服务中心的地址
spring.cloud.config.uri=http://localhost:9000/

使用配置信息

java 复制代码
//将Key为spring.datasource.url的值映射到springDatasourceURL变量上
//其中spring.datasource.url为Git配置文件中的Key
@Value("${spring.datasource.url}")
String springDatasourceURL;
相关推荐
码界奇点15 小时前
基于Spring Cloud与Vue.js的微服务前后端分离系统设计与实现
vue.js·后端·spring cloud·微服务·毕业设计·源代码管理
微扬嘴角17 小时前
springcloud篇10-多级缓存
spring cloud·缓存
爱吃山竹的大肚肚18 小时前
MySQL 支持的各类索引
java·数据库·sql·mysql·spring·spring cloud
梵得儿SHI18 小时前
SpringCloud 核心组件精讲:Spring Cloud Gateway 网关实战-路由配置 + 过滤器开发 + 限流鉴权(附场景配置模板)
java·spring·spring cloud·gateway·搭建基础网关·现静态/动态路由配置·全局/局部过滤器
努力也学不会java20 小时前
【Spring Cloud】初识Spring Cloud
运维·人工智能·后端·spring·机器学习·spring cloud
鼠爷ねずみ1 天前
SpringCloud前后端整体开发流程-以及技术总结文章实时更新中
java·数据库·后端·spring·spring cloud
xiaoshujiaa2 天前
微服务与大数据场景下的Java面试实录:从Spring Cloud到Flink的层层拷问
大数据·spring cloud·微服务·flink·kubernetes·java面试·resilience4j
爱吃山竹的大肚肚2 天前
Spring Boot 与 Apache POI 实现复杂嵌套结构 Excel 导出
java·spring boot·后端·spring·spring cloud·excel
咖啡不甜不好喝2 天前
SpringCloud之OpenFeign
spring cloud·openfeign
黄俊懿2 天前
【深入理解SpringCloud微服务】Spring-Security作用与原理解析
java·后端·安全·spring·spring cloud·微服务·架构师