Spring Cloud 之Config详解

在微服务架构中,统一的配置管理是维护大规模分布式系统的关键。Spring Cloud Config为微服务提供集中化的外部配置支持,它可以与各种源代码管理系统集成,如Git、SVN等。本文将详细介绍如何搭建配置服务器、管理客户端配置和动态刷新配置。

搭建配置服务器

基本原理

Spring Cloud Config Server作为中心化的配置服务器,它从源代码管理系统中读取配置文件,然后提供给客户端应用。原理图如下:

步骤和代码

  1. 添加依赖 :在项目的pom.xml文件中添加Config Server的依赖。

    xml 复制代码
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-config-server</artifactId>
    </dependency>
  2. 启用Config Server :在应用的主类上添加@EnableConfigServer注解。

    less 复制代码
    @SpringBootApplication
    @EnableConfigServer
    public class ConfigServerApplication {
        public static void main(String[] args) {
            SpringApplication.run(ConfigServerApplication.class, args);
        }
    }
  3. 配置文件 :在application.yml中配置Git仓库地址。

    yaml 复制代码
    server:
      port: 8888
    
    spring:
      cloud:
        config:
          server:
            git:
              uri: [Git仓库地址]
              clone-on-start: true

客户端配置管理

配置客户端

  1. 添加依赖 :在客户端应用的pom.xml中添加Config Client的依赖。

    xml 复制代码
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-config</artifactId>
    </dependency>
  2. 配置bootstrap.yml :客户端应用需要在bootstrap.yml文件中指定Config Server的地址。

    yaml 复制代码
    spring:
      application:
        name: client-app
      cloud:
        config:
          uri: http://localhost:8888

读取配置

在客户端应用中,可以直接通过@Value注解读取配置:

kotlin 复制代码
@RestController
public class ConfigClientController {

    @Value("${some.config}")
    private String someConfig;

    @GetMapping("/getConfig")
    public String getConfig() {
        return someConfig;
    }
}

动态刷新配置

Spring Cloud Config支持在不重启服务的情况下刷新配置。

  1. 添加依赖 :在客户端应用中添加spring-boot-starter-actuator依赖。

    xml 复制代码
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
  2. 使用@RefreshScope :在需要动态刷新的Bean上添加@RefreshScope注解。

    less 复制代码
    @RestController
    @RefreshScope
    public class ConfigClientController {
        // ...
    }
  3. 触发刷新 :通过POST请求/actuator/refresh端点来刷新配置。

    bash 复制代码
    curl -X POST http://localhost:8080/actuator/refresh

通过上述内容,我们对Spring Cloud Config的配置服务器搭建、客户端配置管理和动态刷新配置有了深入的了解。Spring Cloud Config为微服务架构中的配置管理提供了一个简单、灵活且强大的解决方案。

相关推荐
金銀銅鐵20 分钟前
[Java] 用 GUI 展示 EnumSet 增减元素时的内部变化(上)
java·后端·ai编程
念何架构之路1 小时前
go-grpc设计思想
开发语言·后端·golang
system_error_x1 小时前
SpringBoot 集成 Thymeleaf 简洁入门
java·spring boot·后端
步行cgn3 小时前
Spring MVC 视图机制的核心接口与类
java·开发语言·后端·spring·mvc
码事漫谈4 小时前
AI 读你的提示词,其实很没耐心
后端
用户8356290780515 小时前
如何使用 Python 格式化 Excel 单元格中的长文本
后端·python
我命由我123455 小时前
Python 开发 - Python 的 pathlib
java·开发语言·后端·python·学习·java-ee·学习方法
IT_陈寒5 小时前
Java性能优化完全指南
前端·人工智能·后端
电子IT笔记5 小时前
对接群晖NAS,上传和删除踩坑记录
前端·后端
Mk598785 小时前
P4:把 Agent 的记忆搬进 Redis —— AgentScope-Java 工程化实战
后端