Spring Cloud Config 原理简介和实现(一)

简介: Spring Cloud Config 原理简介和实现

前言


在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。


在Spring Cloud中,有分布式配置中心组件spring cloud config ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中。


在spring cloud config 组件中,分两个角色,一是config server,二是config client。


微信图片_20220414200138.pngConfig Server是一个可横向扩展、集中式的配置服务器,它用于集中管理应用程序各个环境下的配置,默认使用Git存储配置文件内容,也可以使用SVN存储,或者是本地文件存储。


Config Client是Config Server的客户端,用于操作存储在Config Server中的配置内容。


微服务在启动时会请求Config Server获取配置文件的内容,请求到后再启动容器。




一、简介


1、Spring Cloud Config 项目


  • 提供 服务端 和 客户端 支持
  • 集中式 管理分布式环境下的应用配置
  • 基于 Spring 环境,无缝 与 Spring 应用集成
  • 可用于 任何 语言开发的程序
  • 默认实现基于 git 仓库,可以进行 版本管理
  • 可替换 自定义实现

2、Spring Cloud Config Server 作为配置中心服务端


  • 拉取配置时更新 git 仓库副本,保证是最新结果
  • 支持数据结构丰富,yml, json, properties 等
  • 配合 eureke 可实现服务发现,配合 cloud bus 可实现配置推送更新
  • 配置存储基于 git 仓库,可进行版本管理
  • 简单可靠,有丰富的配套方案

3、Spring Cloud Config Client 默认客户端实现


  • SpringBoot 项目不需要改动任何代码,加入一个启动配置文件指明使用 ConfigServer 上哪个配置文件即可



二、服务端


1、准备配置


微信图片_20220414200142.png

https://gitee.com/pingfanrenbiji/spring-cloud-repo.git


2、创建maven config-server 并添加依赖


微信图片_20220414200145.png


3、创建启动类,并加上开启Config服务端注解@EnableConfigServer


微信图片_20220414200148.png


4、添加application属性文件


微信图片_20220414200151.png


5、启动项目 简单测试


a、启动状态


localhost:9000/application/dev


微信图片_20220414200154.png



localhost:9000/application-dev.properties


微信图片_20220414200157.png


b、访问规则


 /{appication}/{profile}/[{label}]
 /{application}-{profile}.yml
 /{application}-{profile}.properties
 /{label}/{application}-{profile}.properties

 /{label}/{application}-{profile}.yml


它们都可以映射到对应的配置文件{application}-{profile}.properties

其中{label}为具体的分支,默认为master;


相关文章
|
前端开发 Java API
微服务——SpringBoot使用归纳——Spring Boot集成 Swagger2 展现在线接口文档—— Swagger 简介
第6课介绍了在Spring Boot中集成Swagger2以展示在线接口文档的方法。随着前后端分离架构的发展,API文档成为连接前端与后端开发的重要纽带。然而,代码更新频繁导致文档难以同步维护,Swagger2解决了这一问题。通过Swagger,在线API文档不仅方便了接口调用方查看和测试,还支持开发者实时测试接口数据。本文使用Swagger 2.2.2版本,讲解如何在Spring Boot项目中导入并配置Swagger2工具,从而高效管理接口文档。
479 0
|
Java API 数据库
JPA简介:Spring Boot环境下的实践指南
上述内容仅是JPA在Spring Boot环境下使用的冰山一角,实际的实践中你会发现更深更广的应用。总而言之,只要掌握了JPA的规则,你就可以借助Spring Boot无比丰富的功能,娴熟地驾驶这台高性能的跑车,在属于你的程序世界里驰骋。
523 15
|
XML 监控 Java
Spring Cloud全解析:熔断之Hystrix简介
Hystrix 是由 Netflix 开源的延迟和容错库,用于提高分布式系统的弹性。它通过断路器模式、资源隔离、服务降级及限流等机制防止服务雪崩。Hystrix 基于命令模式,通过 `HystrixCommand` 封装对外部依赖的调用逻辑。断路器能在依赖服务故障时快速返回备选响应,避免长时间等待。此外,Hystrix 还提供了监控功能,能够实时监控运行指标和配置变化。依赖管理方面,可通过 `@EnableHystrix` 启用 Hystrix 支持,并配置全局或局部的降级策略。结合 Feign 可实现客户端的服务降级。
1012 23
|
Cloud Native Java Nacos
Spring Cloud Config、Apollo、Nacos和Archaius对比
这篇文章对比了Spring Cloud Config、Apollo、Nacos和Archaius这四种配置中心的适应场景、优缺点。文中讨论了它们的功能特点,例如Spring Cloud Config的集中化配置管理和动态刷新能力,Apollo的实时配置推送和权限治理,Nacos的服务发现和管理功能,以及Archaius的动态配置更新能力。文章指出选择配置中心应根据项目需求和架构来决定,并提供了一个对比图来帮助读者更直观地理解这些工具的差异。
1007 1
Spring Cloud Config、Apollo、Nacos和Archaius对比
|
负载均衡 算法 Java
蚂蚁面试:Nacos、Sentinel了解吗?Springcloud 核心底层原理,你知道多少?
40岁老架构师尼恩分享了关于SpringCloud核心组件的底层原理,特别是针对蚂蚁集团面试中常见的面试题进行了详细解析。内容涵盖了Nacos注册中心的AP/CP模式、Distro和Raft分布式协议、Sentinel的高可用组件、负载均衡组件的实现原理等。尼恩强调了系统化学习的重要性,推荐了《尼恩Java面试宝典PDF》等资料,帮助读者更好地准备面试,提高技术实力,最终实现“offer自由”。更多技术资料和指导,可关注公众号【技术自由圈】获取。
蚂蚁面试:Nacos、Sentinel了解吗?Springcloud 核心底层原理,你知道多少?
|
Java 开发工具 对象存储
简化配置管理:Spring Cloud Config与Netflix OSS中的动态配置解决方案
简化配置管理:Spring Cloud Config与Netflix OSS中的动态配置解决方案
377 2
|
JavaScript NoSQL Java
CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统
CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统
654 0
|
负载均衡 Java API
Spring Cloud原理详解
Spring Cloud原理详解
457 0
|
负载均衡 Java 网络架构
Spring Cloud原理详解
介绍了Spring Cloud的原理和核心组件,包括服务注册与发现、配置管理、负载均衡、断路器、智能路由、分布式消息传递、分布式追踪和服务熔断等,旨在帮助开发人员快速构建和管理微服务架构中的分布式系统。
733 0
|
Java API 开发工具
Spring Boot与Spring Cloud Config的集成
Spring Boot与Spring Cloud Config的集成