探索Spring Cloud Config:构建高可用的配置中心
目录认识Spring Cloud ConfigConfig Server读取配置文件步骤11创建config-server项目2在config-server中开启Config Server功能3在config-server配置文件进行相关配置4在config-server中创建配置文件步骤2搭建Config Client1创建config-client项目导入依赖2在config-client配置文件进行相关配置3在config-client中添加方法步骤3测试运行从Git仓库读取配置文件步骤1创建Git远程仓库并创建配置文件1百度搜索“码云”打开Git官网并注册登录2登录成功后创建仓库3创建仓库成功后在仓库中新建yml文件输入配置内容提交,然后点击加号新建文件夹步骤2修改Config Server的配置文件步骤3测试运行bootstrap.yml与application.yml的区别搭建高可用Config Server步骤1创建Eureka Server步骤3改造Config Client项目步骤4搭建Config Server集群步骤5测试运行认识Spring Cloud Config概述Spring Cloud Config为Spring应用提供了便捷的配置管理解决方案并且可以与其他编程语言编写的应用程序协同工作。Spring Cloud Config通过配置服务器即Config Server和配置客户端即ConfigClient为分布式系统提供外部配置支持。Config Server作为一个独立的微服务负责从Git等存储库加载配置并向需要它的微服务公开这些配置信息。该方案支持环境隔离功能能够实现多环境的代码共享以及针对特定环境的配置管理需求。所有环境配置数据由中央服务器统一维护并通过Git进行版本控制。为了保护敏感信息的安全它提供了加密与解密机制并可通过EnableConfigServer注解轻松集成到Spring Boot应用中。此外这种集中管理方式确保了配置信息的一致性和安全性同时简化了跨环境部署的复杂性。Config Client - Config Server -git RepoConfig Server读取配置文件从本地仓库读取配置文件步骤1.搭建config-server2.搭建config-client3.测试运行步骤1创建父工程config-1在其中搭建Config Server1创建config-server项目导入依赖使用Spring Initializr方式创建一个名称为config-server的Spring Boot项目将Artifact命名为config-server添加Config Server、Test依赖。其中Config Server依赖如下dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-config-server/artifactId version2.0.0.RELEASE/version /dependency2在config-server中开启Config Server功能在程序的启动类ConfigServerApplication添加EnableConfigServer注解开启Config Server功能。3在config-server配置文件进行相关配置在项目的配置文件application.yml中进行相关配置包括指定服务名、端口号、本地读取配置以及读取路径。4在config-server中创建配置文件在项目的resource目录下建一个 bushuo 文件夹用于存放本地配置文件。在 bushuo目录下新建一个config-client-dev.yml文件用作后续将要创建的config-client工程的dev开发环境的配置文件。在config-client-dev.yml配置文件中配置端口号和自定义变量。步骤2搭建Config Client1创建config-client项目导入依赖使用Spring Initializr方式创建一个名称为config-client的Spring Boot项目将Artifact命名为config-client添加Config、Web和Test的起步依赖。其中Config依赖如下dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-starter-config/artifactId version2.0.0.RELEASE/version /dependency2在config-client配置文件进行相关配置在resources文件下新建bootstrap.yml文件。3在config-client中添加方法为了更直观的看到配置文件config-client-dev.yml被读取创建controller包下的ConfigController类添加一个hi()方法进行测试。步骤3测试运行先启动config-server项目再启动config-client项目观察config-client控制台日志。使用浏览器访问config-client的请求方法http://localhost:8002/hi。观察输出结果。从Git仓库读取配置文件步骤1.创建Git远程仓库并创建配置文件2.修改Config Server的配置文件3.测试运行步骤1创建Git远程仓库并创建配置文件在远程Git仓库创建一个名称为hello的公开仓库然后在公开库中创建一个和config-client-dev.yml相同的文件。1百度搜索“码云”打开Git官网并注册登录gitee2登录成功后创建仓库新建仓库内容如下3创建仓库成功后在仓库中新建yml文件输入配置内容提交,然后点击加号新建文件夹往下翻点击提交步骤2修改Config Server的配置文件点击“克隆”按钮复制uri地址修改username与password的值为登录Git的用户名和密码。修改Config Server的配置文件application.yml。配置服务名、端口号、远程Git仓库的地址、文件夹地址、用户名、密码、分支名等。步骤3测试运行重启config-server和config-client观察config-client控制台日志。使用浏览器访问http://localhost:8002/hi。bootstrap.yml与application.yml的区别加载顺序若application.yml 和bootstrap.yml 在同一目录下bootstrap.yml 先加载 application.yml后加载配置区别bootstrap.yml 和 application.yml 都可以用来配置参数。bootstrap.yml 用来程序引导时执行应用于更加早期配置信息读取。可以理解成系统级别的一些参数配置这些参数一般是不会变动的。一旦bootstrap.yml 被加载则内容不会被覆盖。application.yml 可以用来定义应用级别的 应用程序特有配置信息可以用来配置后续各个模块中需使用的公共参数等。属性覆盖问题application.yml 的内容标签与 bootstrap 的标签一致application 也不会覆盖 bootstrap而 application.yml 里面的内容可以动态替换注意git的配置文件与项目name一致思考为新的config客户端config-client-another在Git中添加配置文件运行测试。1创建config-client-another项目导入依赖其中Config依赖如下dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-starter-config/artifactId version2.0.0.RELEASE/version /dependency2在resources 新建bootstrap.yml文件spring: application: name: config-client-another cloud: config: uri: http://localhost:8001 fail-fast: true profiles: active: dev(3)添加方法创建controller包configcontroller添加方法hello1进行测试package com.bushuo.configclientanother.controller; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; RestController public class configcontroller { Value( ${hello1} ) String hello1; RequestMapping(value /hello1) public String hello1(){ return hello1; } }4在git中在hello下创建config-client-another-dev.yml5运行测试搭建高可用Config Server服务实例很多时所有的服务实例需要同时从配置中心Config Server读取配置文件这时可以考虑将配置中心Config Server做成一个集群化的微服务从而达到高可用。将Config Server和Config Client注册在Eureka Server.步骤1.创建Eureka Server2.改造Config Server项目3.改造Config Client项目4.搭建Config Server集群5.测试运行步骤1创建Eureka Server步骤1创建项目引入依赖1使用Spring Initializr方式创建一个名称为eureka-server的Spring Boot项目将Artifact命名为eureka-server在pom.xml文件中添加Eureka Server依赖。方便测试效果新建一个eureka-server项目作为Config Server的注册中心将eureka-server端口号设置为7001。?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd modelVersion4.0.0/modelVersion parent groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-parent/artifactId version2.0.6.RELEASE/version relativePath/ !-- lookup parent from repository -- /parent groupIdcom.bushuo/groupId artifactIdeureka-server/artifactId version0.0.1-SNAPSHOT/version nameeureka-server/name descriptionDemo project for Spring Boot/description url/ licenses license/ /licenses developers developer/ /developers scm connection/ developerConnection/ tag/ url/ /scm properties java.version1.8/java.version /properties dependencies dependency groupIdorg.springframework.cloud/groupId artifactId spring-cloud-starter-netflix-eureka-server /artifactId /dependency dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-test/artifactId scopetest/scope /dependency /dependencies dependencyManagement dependencies dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-dependencies/artifactId versionFinchley.SR2/version typepom/type scopeimport/scope /dependency /dependencies /dependencyManagement build plugins plugin groupIdorg.springframework.boot/groupId artifactIdspring-boot-maven-plugin/artifactId /plugin /plugins /build /project与springboot一致 2.0.6.RELEASE 的springcloud的依赖 Finchley.SR2 —2添加Eureka的相关配置在全局配置文件application.yml中添加Eureka的相关配置信息。3在项目启动类添加EnableEurekaServer注解在项目启动类EurekaServerApplication上添加EnableEurekaServer注解开启Eureka Server功能。4测试运行 http://localhost:7001步骤2改造Config Server项目1Config Server作为服务器需要在工程中的pom.xml配置文件中加入Eureka Client依赖。parent groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-parent/artifactId version2.0.6.RELEASE/version relativePath/ !-- lookup parent from repository -- /parent properties java.version1.8/java.version /properties dependencies dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-starter-netflix-eureka-client/artifactId /dependency dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-test/artifactId scopetest/scope /dependency /dependencies dependencyManagement dependencies dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-dependencies/artifactId versionFinchley.SR2/version typepom/type scopeimport/scope /dependency /dependencies /dependencyManagement build plugins plugin groupIdorg.springframework.boot/groupId artifactIdspring-boot-maven-plugin/artifactId /plugin /plugins /build /project2在项目的启动类ConfigServerApplication添加EnableEurekaClient和 EnableConfigServer注解开启Eureka Server和Config Server功能。3修改配置文件application.yml文件为Config Server指定服务注册的地址等信息。步骤3改造Config Client项目1在pom文件中加入Eureka Client起步依赖。在项目启动类上添加EnableEurekaClient注解启动Eureka Client功能。在配置文件bootstrap.yml加入指定服务注册地址等相关配置配置如下步骤4搭建Config Server集群搭建高可用的Config Server服务只需要将Config Server多实例部署使用Spring Initializr方式创建一个名称为config-server2的Config Server项目设置端口号为8003服务名也为config-server其他配置信息和搭建过程与config-server项目一致。步骤5测试运行使用浏览器访问http://localhost:7001。访问config-client的请求方法http://localhost:8002/hi。观察输入结果。停掉config-server服务再次访问请求观察还能否正常访问

相关新闻

第七周学习 栈与队列

第七周学习 栈与队列

一.栈(stack)后进先出1.限定仅在表尾进行插入或删除操作的线性表。因此,栈的表尾端称为栈顶,表头端称为栈顶。不含元素的空表称为空栈。设,称为栈底元素,为栈顶元素,栈中元素按依次入栈,退栈的第…

2026/7/5 8:22:58 阅读更多 →
零基础入门时间序列预测:手把手教你部署IBM Granite FlowState R1模型

零基础入门时间序列预测:手把手教你部署IBM Granite FlowState R1模型

零基础入门时间序列预测:手把手教你部署IBM Granite FlowState R1模型 你是不是觉得时间序列预测听起来特别高大上,感觉需要一堆复杂的数学公式和编程知识才能入门?今天我要告诉你一个好消息:现在有一个超轻量级的模型&#xff0…

2026/7/7 6:15:54 阅读更多 →
蓝易云 :MySQL之优化SELECT语句

蓝易云 :MySQL之优化SELECT语句

蓝易云:MySQL 之优化 SELECT 语句(把“慢”拆成可控的成本)⚡️优化 SELECT 的本质是做三件事:让优化器选到更好的执行计划、让存储引擎少读数据页、让返回路径少做无效工作。你可以把一次查询的成本粗略理解为: [ \te…

2026/7/5 3:41:49 阅读更多 →

最新新闻

01.05.03.DeepSeek:环境搭建篇(RAG 检索增强生成工具AnythingLLM: 上传数据到本地知识库)

01.05.03.DeepSeek:环境搭建篇(RAG 检索增强生成工具AnythingLLM: 上传数据到本地知识库)

操作流程 1、上传文件2、测试下上传文件测试 # 上传成功后,进入查看是否有文件 cd /mnt/D/deepseek/lancedb进行提问deepseek

2026/7/8 14:56:45 阅读更多 →
Python scikit-learn 1.4 实战:3种判别分析算法(距离/Fisher/贝叶斯)核心差异与代码对比

Python scikit-learn 1.4 实战:3种判别分析算法(距离/Fisher/贝叶斯)核心差异与代码对比

Python scikit-learn 1.4 实战:3种判别分析算法核心差异与代码对比判别分析作为经典的统计学习方法,在金融风控、医疗诊断、客户分群等领域始终保持着高实用性。随着scikit-learn 1.4版本对线性判别分析算法的优化,现在正是重新审视三种主流判…

2026/7/8 14:54:43 阅读更多 →
C-NCAP 2024版ADAS测试规程解读:AEB/LKA/ELK等10项新增场景与评分变化

C-NCAP 2024版ADAS测试规程解读:AEB/LKA/ELK等10项新增场景与评分变化

C-NCAP 2024版ADAS测试规程深度解析:从AEB误触发到ELK紧急车道保持的技术演进随着智能驾驶技术从L2向L3级别加速迈进,主动安全系统的测试标准正经历着前所未有的革新。2024版C-NCAP主动安全ADAS测试规程的发布,不仅标志着中国新车评价体系对智…

2026/7/8 14:54:43 阅读更多 →
WayCa鲲鹏故障处理进阶教程:高级RAS特性与自动化诊断方案

WayCa鲲鹏故障处理进阶教程:高级RAS特性与自动化诊断方案

WayCa鲲鹏故障处理进阶教程:高级RAS特性与自动化诊断方案 【免费下载链接】WayCa Wayca repo display kunpeng featuer and establish ecology communication 项目地址: https://gitcode.com/openeuler/WayCa 前往项目官网免费下载:https://ar.op…

2026/7/8 14:54:43 阅读更多 →
如何用ncmdump解锁网易云音乐加密文件?三步实现NCM文件解密

如何用ncmdump解锁网易云音乐加密文件?三步实现NCM文件解密

如何用ncmdump解锁网易云音乐加密文件?三步实现NCM文件解密 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾为网易云音乐下载的歌曲只能在特定客户端播放而烦恼?😫 想在其他设备上自由聆听…

2026/7/8 14:48:21 阅读更多 →
如何在PotPlayer中实现实时字幕翻译:3步配置百度翻译插件

如何在PotPlayer中实现实时字幕翻译:3步配置百度翻译插件

如何在PotPlayer中实现实时字幕翻译:3步配置百度翻译插件 【免费下载链接】PotPlayer_Subtitle_Translate_Baidu PotPlayer 字幕在线翻译插件 - 百度平台 项目地址: https://gitcode.com/gh_mirrors/po/PotPlayer_Subtitle_Translate_Baidu PotPlayer作为一款…

2026/7/8 14:46:20 阅读更多 →

日新闻

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: …

2026/7/8 0:00:48 阅读更多 →
MyBatis 批量操作深度优化——从 N+1 到批处理的全路径

MyBatis 批量操作深度优化——从 N+1 到批处理的全路径

MyBatis 批量操作深度优化——从 N1 到批处理的全路径 一、从"功能正确"到"性能可接受"——MyBatis 批量操作的三段式进化 MyBatis 在日常增删改查场景中几乎是无感的——实体映射直观、SQL 控制灵活。但当数据量从千级上升到十万级、百万级,许…

2026/7/8 0:00:48 阅读更多 →
工业负载控制方案:TPD2015FN与PIC18F45K22应用解析

工业负载控制方案:TPD2015FN与PIC18F45K22应用解析

1. 工业负载控制方案概述在工业自动化、电机驱动和照明控制等高需求场景中,可靠地控制电感和电阻负载是核心挑战之一。TPD2015FN作为东芝的8通道高端智能功率开关IC,配合PIC18F45K22微控制器,能够构建一套稳定、高效的负载控制系统。这套组合…

2026/7/8 0:02:48 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/7 14:24:45 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/7 12:34:47 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/7 15:59:06 阅读更多 →

月新闻