在传统的应用中,我们的配置文件都是放在项目中,这个影响不大。但是在一个微服务架构的系统中,我们的微服务可能存在几十上百个,并且每个小的微服务可能又部署在多台机器上,那么这个时候如果我们的配置文件在都放在具体的微服务中,那么就不好进行维护了,因此我们需要将服务中的配置文件单独抽取出来,集中管理。spring cloud config 可以为我们做到配置的集中管理,动态刷新配置等。当然除了spring cloud config 还有其它的也可以实现配置的集中管理,此处简单的来看一下 spring cloud config 的配置。
实现功能
1、config server 端的编写并注册到eureka上
2、config server 端增加 basic 认证
3、config server 路径查找,searchPaths 参数
4、配置项进行对称加密处理
5、其它的一些配置见具体的配置文件上
6、客户端的快速失败
7、config server 的一些加密和解密端点
注意:
1、config server 和 config client 的配置文件都需要写在 bootstrap.yml 配置文件中
2、启用配置加密时,需要从 oracle 官网下载 JCE ,并覆盖在 jdk/jre/lib/security 目录中
|- Java 6 JCE
|- Java 7 JCE
|- Java 8 JCE
代码结构
配置文件的访问路径
config server端访问路径
例如:http://configer_server:port/{application}-{profile}.properties
http://localhost:8301/product-provider-config-client-8302-dev.properties
{application} ---> product-provider-config-client-8302
{profile} ---> dev
{label} ---> master 没有指定默认就是 master 分支(此处指的是git的分支)。
即最终的配置的值为 product-provider-config-client-8302.properties和product-provider-config-client-8302-dev.properties的合并的值。
在 github 上创建一个仓库,作为配置存放的地方
配置服务器服务端编写
1、config server端增加basic认证,需要引入 spring security
2、由于引入了spring security 所以需要放行 /encrypt/status,/encrypt/**,/decrypt/** 这些端点,便于测试
3、配置服务器的配置放置在 git 服务器上,如果是在私有仓库,那么需要配置 username和password的值
4、默认情况下是第一次访问配置的时候从 git 服务器上 clone 下配置,修改成程序一启动就拉取配置
5、指定 git 配置存在在本地的路径
6、启用配置的对称加密
|- encrypt.key 这个值必须要配置在 bootstrap.yml 配置文件中,否则不生效
|- 使用 post 访问 http://config_server_host:port/encrypt 请求body中放入 需要加密的字符串,访问得到加密的值。 server.port={cipher}459c0c93ceab39c1924bb5addf72f03dc5eedfed7edac44851ecb0a1a1e888c9
1、依赖的引入,主要引入 config server 和 spring security 的依赖
2、启动类上增加 @EnableConfigServer 注解
@SpringBootApplication @EnableDiscoveryClient @EnableConfigServer public class ApplicationConfigServer8301 { public static void main(String[] args) { SpringApplication.run(ApplicationConfigServer8301.class, args); } }
3、配置文件 bootstrap.yml 的编写
此处启用了加密,需要将上方注意事项中的 JCE 下载下来,并覆盖在 JDK/jre/lib/security 目录中
加密后里面的配置的写法:
server: port: '{cipher}459c0c93ceab39c1924bb5addf72f03dc5eedfed7edac44851ecb0a1a1e888c9'
配置客户端的编写,即具体的微服务配置
1、依赖的引入,主要是 config
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency>
2、bootstrap/yml 配置文件的编写
配置及运行结果
完整代码
config server 和 config client 演示代码: https://gitee.com/huan1993/spring-cloud-parent/tree/master/config
相关推荐
Spring Cloud Bus配合Spring Cloud Config使用可以实现配置的动态刷新 spring cloud bus能管理和传播分布式系统间的消息,就像分布式执行器,可用于广播状态更改、时间推送等,也可以当做微服务间的通信通道 spring ...
Spring Cloud Config/Bus 源码解读 本文将对 Spring Cloud Config/Bus 的源码进行解读,涵盖 Server ...通过对源码的分析,可以更好地理解 Spring Cloud Config/Bus 的工作机制,并更好地使用这个框架来管理配置文件。
在描述中提到了“包含rabbitmq”,这意味着 Spring Cloud Bus 使用 RabbitMQ 作为底层的消息传递机制。RabbitMQ 是一个开源的消息代理,它遵循 Advanced Message Queuing Protocol (AMQP) 协议,可以实现高可靠性的...
1.Spring Cloud Config 用于为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持,分为服务端和客户端。 2.服务端为分布式配置中心,是一个独立的微服务应用;客户端为分布式系统中的基础设置或微服务...
Spring Cloud Config使用Oracle数据库作为后端配置存储 Spring Cloud Config + Spring Cloud Bus + kafka实现配置中心 SpringCloud微服务远程调用组件Feign的使用 springcloud-circuitbreaker.zip springcloud-...
这个"Spring Cloud Config Demo"是一个实例,用于演示如何使用Spring Cloud Config进行配置管理。 在Spring Cloud Config中,主要涉及两个核心组件:Config Server(配置服务器)和Config Client(配置客户端)。...
通过以上步骤,你可以成功搭建并使用Spring Cloud Config。无论是本地配置中心还是Git配置中心,它都能有效地帮助你在微服务架构中管理和分发配置,提高应用的可维护性和灵活性。理解并掌握这些知识点,将对你的...
在微服务架构中,Spring Cloud Config 是一个强大的分布式配置中心,它允许开发人员将应用程序的配置存储在远程仓库中,并且可以在运行时动态地管理和更新这些配置,无需重启应用。这个特性对于大型分布式系统来说...
这个详细Demo将涵盖Spring Cloud Config的使用方法,包括集群搭建和与Eureka服务发现组件的集成。让我们深入探讨这些关键知识点。 首先,Spring Cloud Config 由两个主要部分组成:Config Server 和 Config Client...
在本篇学习笔记中,我们将深入探讨Spring Cloud Config——一个强大的配置管理工具,它使得在分布式系统中管理和分发配置变得简单。Spring Cloud Config支持服务器端和客户端两种组件,允许我们在开发过程中动态地...
本项目为基于Spring Cloud Config的Spring Cloud Config Admin设计源码,集成了495个文件,涵盖191个JavaScript文件、78个Java源文件、65个图片文件(包括jpg和png)、24个属性文件、23个SVG文件、17个XML文件、10个...
- 文章链接提供的 `http://www.cnblogs.com/shamo89/p/8016908.html` 可能包含更具体的 Spring Cloud Config 示例和使用细节,建议参考学习。 5. **部署与监控** - 部署 Config Server 和 Config Client 到生产...
Spring Cloud Config 使用基于VCS的backend来存储配置信息,在默认情况下,配置信息会被checkout或clone到本地文件系统的临时目录中,例如在Linux系统中,可能是 `/tmp/config-repo-<randomid>`。但是,这些临时...
- 客户端是Spring Cloud Config的使用者,每个需要使用配置的微服务都会包含Config Client。 - 客户端通过HTTP API与Config Server通信,获取当前环境下的配置信息。 - 当客户端启动时,会自动向Config Server...
为了简化配置管理,并且在不同环境(如开发、测试、生产)中灵活切换,我们可以使用Spring Cloud Config实现统一配置管理。 本文将详细介绍如何使用Spring Cloud Config实现统一配置管理,涵盖以下内容: Spring ...
客户端示例部分会介绍如何在Spring应用中使用Spring Cloud Config客户端,通过配置客户端引入配置服务器的信息,并与之进行通信以获取配置信息。 **配置服务Spring Cloud Config Server** 配置服务端是整个Spring ...
在本场景中,我们将探讨如何使用 Oracle 数据库作为 Spring Cloud Config 的后端存储来保存和管理配置信息。 首先,我们需要了解 Spring Cloud Config 的基本架构。Config Server 是服务端,负责加载和提供配置信息...
在IT行业中,微服务架构已经成为了现代应用开发的主流方式,Spring Cloud Config作为一个强大的工具集,为微服务提供了集中化的外部配置支持。本示例主要关注如何利用Spring Cloud Config实现远程SVN配置的自动化...
Spring Cloud Config是Spring Cloud的一部分,旨在为微服务架构提供集中化的外部配置支持,配置内容可以从各种外部资源(如配置文件、数据库、环境变量等)加载。Spring Cloud Bus用于管理和传播分布式系统中的消息...