Spring-Cloud-Config

Spring Cloud Config 快速入门

1、概览 Spring Cloud Config 是 Spring 用于在分布式环境下提供集中式配置的解决方案。 本文将带你了解如何设置一个基于 Git 的配置服务器(包括加密的属性值),以及如何在 REST 应用中使用它。 2、依赖 首先是配置服务器应用,包含了 spring-cloud-config-server、spring-boot-starter-security 和 spring-boot-starter-web Starter: <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> 然后是客户端应用,只需要 spring-cloud-starter-config 和 spring-boot-starter-web 模块: <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> 3、实现配置服务器 通过在 @SpringBootApplication 类上注解 @EnableConfigServer 来启用配置服务器。该注解会自动配置所有必要的组件: @SpringBootApplication @EnableConfigServer public class ConfigServer { public static void main(String[] arguments) { SpringApplication.run(ConfigServer.class, arguments); } } 还需要配置服务器的监听端口和 Git URL(提供版本控制的配置内容)。后者可以使用诸如 http、ssh 或本地文件系统上的简单文件等协议。

Spring Cloud Config 使用 GIT 以外的配置源

1、简介 Spring Cloud Config 是 Spring Cloud 生态下的一个子项目,可让 Spring 应用轻松实现配置外部化。通过它,可以将配置数据作为服务暴露出来,从而使得任何具有 HTTP 客户端的应用都可以轻松地获取配置数据。 本文将会带你了解如何在 Spring Cloud Config 中使用 Git 以外的配置源来存储配置信息。 2、Spring Cloud Config 概览 Spring Cloud Config 采用了典型的客户端-服务器模型。集中式服务器(或多个服务器)从外部数据源读取配置数据。这些服务器会暴露各种 HTTP 端点,允许任何其他应用查询配置数据。 Spring Cloud Config 还能让 Spring Boot 应用非常方便地自动连接到配置服务器。服务器提供的配置数据可以像客户端应用中的其他属性源一样使用。 3、GIT Spring Cloud Config 最常见的使用案例是在 git 仓库中存储配置数据。这种方式的设置有几个优点: 灵活性:git 仓库可以容纳各种类型的文件,包括二进制文件。 安全性:可轻松控制细粒度的读写权限。 审计:强大的历史跟踪功能可轻松审核配置更改。 标准化:无论哪家提供商(Provider),Git 操作都是标准的,这意味着我们可以自行托管或使用任意数量的第三方提供商。 分布式: Git 从一开始就是为分布式设计的,因此非常适合云原生和微服务架构。 尽管有上述种种好处,但 git 并不总是存储配置数据的最佳选择。例如,项目可能已经将配置数据放在其他数据存储(如关系型数据库)中。在这种情况下,将其迁移到 git 可能就得不偿失了。 4、使用 GIT 以外的 配置源 在 Spring Cloud Config 中使用 git 以外的其他配置源时时,指的其实是服务器组件。对数据存储的选择不会影响客户端组件。只有服务器会受到影响。 在 Spring Cloud Config Server 库中,有一个名为 EnvironmentRepository 的接口定义了一个配置源。所有配置源(包括 git 和其他配置源)都必须实现该接口。

覆盖 Spring Cloud Config 中的远程属性值

1、概览 Spring Cloud Config 是 Spring Cloud 全家桶的一个子项目。它通过集中式独立的服务来管理各个服务的配置。Spring Cloud Config 拥有自己的属性管理库,但也可以集成 Git、Consul 和 Eureka 等开源项目。 在本文中,我们将了解在 Spring Cloud Config 中覆盖远程属性值的不同方法,以及 Spring 从 2.4 版本开始强制实施的限制,以及 3.0 版本中的变化。在本教程中,我们使用 Spring Boot 2.7.2。 2、创建 Spring Config Server 使用 Spring Cloud Config 创建外部化的配置服务器。 2.1、创建配置文件 在 application.properties 文件中定义的配置与所有客户端应用共享。也可以为指定应用或指定 Profile 定义特定配置。 首先,创建一个配置文件,其中包含为客户端应用提供的属性。 客户端应用命名为 baeldung,在 /resources/config 文件夹中创建 baeldung.properties 文件。 2.2、添加属性 在 baeldung.properties 文件中添加一些属性,然后在客户端应用中使用这些属性: hello=Hello Jane Doe! welcome=Welcome Jane Doe! 还要在 resources/config/application.properties 文件中添加一个共享属性,Spring 将在所有客户端中共享该属性: shared-property=This property is shared accross all client applications 2.