Spring Cloud Config: 了解、原理和使用

这篇具有很好参考价值的文章主要介绍了Spring Cloud Config: 了解、原理和使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Spring Cloud Config: 了解、原理和使用

Spring Cloud Config 是 Spring Cloud 生态系统中的一个重要组件,它提供了一种分布式配置管理的解决方案,能够集中管理应用程序的配置,支持多种后端存储,如 Git、SVN、本地文件系统、Vault 等。在本文中,我们将介绍 Spring Cloud Config 的概念、原理和使用方法,并提供一些代码示例。

Spring Cloud Config: 了解、原理和使用,SpringBoot 教程,elasticsearch,大数据,搜索引擎

了解 Spring Cloud Config

Spring Cloud Config 通过将应用程序配置集中管理,使得应用程序的配置更加易于管理和维护。它通过将配置存储在远程仓库中(如 Git),并提供 REST API 来访问配置,从而实现了分布式配置管理。Spring Cloud Config 还支持配置的版本管理,可以根据不同的环境、不同的应用程序等来管理配置,从而实现了应用程序的多环境部署。

Spring Cloud Config 有两个核心组件:

  • Config Server:配置服务器,用于存储和管理应用程序的配置。
  • Config Client:配置客户端,用于从 Config Server 中获取配置。

Spring Cloud Config 的原理

Spring Cloud Config 的核心原理是将应用程序的配置存储在远程仓库中,并将其作为一个 REST API 来访问。Config Server 会自动从远程仓库中获取配置,然后将其返回给 Config Client。Config Client 可以通过 HTTP 或 HTTPS 协议来访问 Config Server,并获取应用程序的配置。

Spring Cloud Config 支持多种仓库类型,如 Git、SVN、本地文件系统、Vault 等。其中,Git 是最常用的仓库类型。在使用 Git 作为配置仓库时,Config Server 会自动从 Git 仓库中获取配置文件,并将其转换为一个 REST API 来访问。配置文件的命名规则是 a p p l i c a t i o n − {application}- application{profile}.yml 或 a p p l i c a t i o n − {application}- application{profile}.properties,其中 a p p l i c a t i o n 是应用程序的名称, {application} 是应用程序的名称, application是应用程序的名称,{profile} 是应用程序的环境。

如何使用 Spring Cloud Config

下面我们来介绍如何使用 Spring Cloud Config 来管理应用程序的配置。

创建 Config Server

首先,我们需要创建一个 Config Server,用于存储和管理应用程序的配置。可以使用 Spring Boot 来创建 Config Server,只需要添加以下依赖:

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-config-server</artifactId>
</dependency>

然后,在应用程序的启动类上添加 @EnableConfigServer 注解,即可启动 Config Server:

@SpringBootApplication
@EnableConfigServer
public class ConfigServerApplication {
  public static void main(String[] args) {
    SpringApplication.run(ConfigServerApplication.class, args);
  }
}

默认情况下,Config Server 会从 Git 仓库中获取配置文件。可以通过在 application.yml 文件中添加以下配置来指定 Git 仓库的位置:

spring:
  cloud:
    config:
      server:
        git:
          uri: https://github.com/spring-cloud-samples/config-repo.git

创建 Config Client

接下来,我们需要创建一个 Config Client,用于从 Config Server 中获取应用程序的配置。可以使用 Spring Boot 来创建 Config Client,只需要添加以下依赖:

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-config</artifactId>
</dependency>

然后,在应用程序的启动类上添加 @EnableConfigrationProperties 注解,即可启动 Config Client:

@SpringBootApplication
@EnableConfigurationProperties
public class ConfigClientApplication {
  public static void main(String[] args) {
    SpringApplication.run(ConfigClientApplication.class, args);
  }
}

默认情况下,Config Client 会从 Config Server 中获取应用程序的配置。可以通过在 application.yml 文件中添加以下配置来指定 Config Server 的位置:

spring:
  cloud:
    config:
      uri: http://localhost:8888

获取配置

现在,我们已经创建了 Config Server 和 Config Client,下面我们来看看如何从 Config Server 中获取应用程序的配置。

我们可以通过在 application.yml 文件中添加以下配置来指定应用程序的名称和环境:

spring:
  application:
    name: myapp
  profiles:
    active: dev

这里,我们将应用程序的名称设置为 myapp,环境设置为 dev。然后,在 Config Server 中创建一个名为 myapp-dev.properties 的配置文件,内容如下:

foo=bar

接下来,在 Config Client 中可以通过 @Value 注解来获取配置:

@RestController
public class ConfigController {
  @Value("${foo}")
  private String foo;

  @GetMapping("/foo")
  public String getFoo() {
    return foo;
  }
}

这样,当访问 /foo 接口时,就可以获取到配置中的 foo 属性了。

配置加解密

在实际使用中,我们可能需要对配置进行加解密,以保证配置的安全性。Spring Cloud Config 支持配置加解密,可以使用 Jasypt 来实现。

首先,我们需要在 Config Server 和 Config Client 中添加以下依赖:

<dependency>
  <groupId>com.github.ulisesbocchio</groupId>
  <artifactId>jasypt-spring-boot-starter</artifactId>
</dependency>

然后,在 Config Server 中,可以通过在 application.yml 文件中添加以下配置来指定加解密密钥:

jasypt:
  encryptor:
    password: mysecretkey

然后,在 Config Server 中创建加密的配置文件,可以使用 Jasypt 命令行工具来加密:

java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="foo=bar" password=mysecretkey algorithm=PBEWithMD5AndDES

将加密后的结果保存为 myapp-dev.properties.encrypted 文件。然后,在 Config Client 中,可以通过在 application.yml 文件中添加以下配置来指定解密密钥:

jasypt:
  encryptor:
    password: mysecretkey

然后,在 Config Client 中可以直接获取解密后的配置:

@RestController
public class ConfigController {
  @Value("${foo}")
  private String foo;

  @GetMapping("/foo")
  public String getFoo() {
    return foo;
  }
}

这样,当访问 /foo 接口时,就可以获取到解密后的配置中的 foo 属性了。

总结

Spring Cloud Config 是 Spring Cloud 生态系统中的一个重要组件,它提供了一种分布式配置管理的解决方案,能够集中管理应用程序的配置,支持多种后端存储,如 Git、SVN、本地文件系统、Vault 等。在本文中,我们介绍了 Spring Cloud Config 的概念、原理和使用方法,并提供了一些代码示例。希望本文对于了解和使用 Spring Cloud Config 有所帮助。文章来源地址https://www.toymoban.com/news/detail-530282.html

到了这里,关于Spring Cloud Config: 了解、原理和使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Cloud【Config客户端配置与测试、Config客户端之动态刷新 、什么是Spring Cloud Bus、Docker安装RabbitMQ】(十)

      目录 分布式配置中心_Config客户端配置与测试 为什么要引入bootstrap 

    2024年02月15日
    浏览(43)
  • 在Spring Cloud Config Github配置中心

    关于Spring Cloud系列我们其实讲解了很多,但是这里我们介绍一下Spring Cloud Config,它是一个解决分布式系统的配置管理方案,他包含了Client 和 Server 两个部分,server提供配置文件的存储,以接口的方式将配置文件内容提供出去,Client通过接口获取相关数据,并依据数据初始化自

    2024年01月19日
    浏览(46)
  • Spring Cloud之Config分布式配置应⽤

    . 右键⽗⼯程【 yx-parent 】选择【 New 】 - 【 Module 】选项,然后选择创建【 Maven 】类型项⽬(不勾选模 板),将项⽬名称设置为【yx-cloud-config 】。   在 yx-cloud-config ⼯程的 pom.xml⽂件中引⼊以下依赖坐标(需要将⾃⼰注册到 Eureka )。 在 com.yx.config 包下创建 ConfigApplication 启

    2024年02月15日
    浏览(50)
  • 第十二章 Spring Cloud Config 统一配置中心详解

    目录 一、配置问题分析及解决方案 1、问题分析 2、解决方案 二、Spring Cloud Config 介绍 1、Spring Cloud Config特性 2、Spring Cloud Config作用     3、Spring Cloud Config 组件    统一配置中心服务端    统一配置中心客户端 4、Spring Cloud Config 工作流程 三、 配置中心使用 1 搭建远程 git

    2024年02月16日
    浏览(42)
  • Spring Cloud-Config介绍及Git入门

    二、Spring cloud config 分布式配置中心能干吗? ================================= (1)集中式管理配置文件 (2)不同环境,不同配置,动态化的配置更新,分环境部署,比如 /dev /test /prod /beta /release (3)运行期间动态调整配置,不再需要在每个服务部署的机器上编写配置文件,服务

    2024年04月12日
    浏览(34)
  • SpringBoot-1-Spring Boot实战:快速搭建你的第一个应用,以及了解原理

    SpringBootWeb入门 我们在之前介绍Spring的时候,已经说过Spring官方(Spring官方)提供很多开源项目,点击projects,看到spring家族旗下的项目 Spring发展到今天已经形成了一种开发生态圈,Spring提供了若干个子项目,每个项目用于完成特定的功能。而我们在项目开发时,一般会偏向于选

    2024年02月12日
    浏览(61)
  • Spring Cloud Config、Apollo、Nacos和Archaius对比

    一、适应场景 Spring Cloud Config、Apollo、Nacos、Archaius这四个配置中心在功能和使用场景上有所差异。 1、Spring Cloud Config Spring Cloud Config是Spring Cloud官方提供的分布式系统的外部配置中心。它提供了服务器和客户端支持,可以集中管理不同环境、不同集群的配置,并且支持动态刷

    2024年02月09日
    浏览(31)
  • 微服务Spring Cloud Config配置中心与RabbitMQ安装指南

    本文档详细描述了如何在Spring Cloud微服务架构中设置Config配置中心,将项目配置文件存储在Git服务器上(如GitHub或Gitee),并在微服务启动时从Config配置中心获取配置文件。同时,提供了RabbitMQ消息队列的安装指南,为微服务之间的通信提供可靠的消息传递机制。

    2024年02月11日
    浏览(42)
  • Spring Cloud Config配置服务及那些你不知道的坑

    目录 1、为什么选择Spring Cloud Config 1.1 集中式管理 1.2 动态修改配置 2、Spring Cloud Config 简介 3、服务端配置 3.1 添加依赖 3.2 开启服务注册 3.3 添加YML配置 3.4 创建远程分支及Profile配置文件 3.5 启动并测试服务 4、客户端配置 4.1 添加依赖 4.2 开启服务注册 4.3 添加YML配置 4.4 启动并

    2024年02月05日
    浏览(48)
  • Spring Boot 中的 Spring Cloud Hystrix 是什么,原理,如何使用

    在分布式系统中,服务之间的调用是不可避免的。但是,当一个服务调用另一个服务时,如果被调用的服务出现了故障或者延迟,那么调用者也会受到影响,甚至会导致整个系统的崩溃。为了解决这个问题,Netflix 提供了一种解决方案:Hystrix。 在 Spring Cloud 中,Hystrix 是一个

    2024年02月12日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包