企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
## 一、Spring Cloud Config简介 Spring Cloud Config Server提供了可水平扩展的集中式配置服务。它使用可插拔的存储库层作为数据存储,该存储层目前支持本地存储,Git和Subversion。其核心功能: * 通过将版本控制系统用作配置存储,开发人员可以轻松地对配置更改进行版本控制和审核。 * 实现集中的配置管理,不同的环境、不同应用的配置通过文件名称进行区分。 * 支持运行时动态配置更新,即:配置的热更新 * 提供配置访问的REST接口 ![](https://img.kancloud.cn/3e/e1/3ee19a0d967658f755ef59036a19bed0_721x281.png) * 首先我们需要一个远程的Git Repository仓库(在实际生产环境中,一般需要自己搭建一个Git服务器。方便起见,建议使用了开源中国的gitee仓库或微软的github) * 其次我们需要搭建ConfigSever,Spring Cloud微服务(如上图A、B、C)应用在启动的时候会从Config Server中来加载相应的配置信息 。前提是Spring Cloud微服务集成了Spring Cloud Config的客户端程序。 * 当Spring Cloud微服务尝试去从Config Server中加载配置信息的时候,Config Server会先通过git clone命令从远程Git Repository仓库克隆一份配置文件保存到本地 。这样当Git Repository远程仓库无法连接时,就直接使用Config Server本地存储的配置信息 * 由于配置文件是存储在Git仓库中,所以配置文件天然的具备版本管理功能,Git中的Hook功能可以实时监控配置文件的修改 ## 二、构建git配置文件仓库 虽然Spring Cloud config目前支持本地存储,Git和Subversion,但是基于配置版本审核、管理,以及可用性的考量基础,几乎最终都是选择git作为Spring Cloud config的配置仓库的管理工具。 > 因为Spring Cloud Config通常是结合Eureka来实现高可用环境(同属netflix),所以本节我们将git本地代码版本回退到master分支eureka内容讲解完成之后,consul、zookeeper、apollo内容之前。 > ![](https://img.kancloud.cn/d6/f1/d6f1312204d1f2b2a8ef0fee7475463e_459x244.png) 下面我们就以为aservice-sms和aservice-rbac服务使用Spring Cloud Config集中配置管理为需求,为大家讲解。我们在dongbb-cloud项目下面新建一个文件夹(不是module是文件夹):zimug-server-config-repo ![](https://img.kancloud.cn/cd/07/cd07856d36fd85852058d9a244fe7e52_321x72.png) > 点击这里查看gitee配置文件内容:[https://gitee.com/hanxt/dongbb-cloud/tree/netflix/zimug-server-config-repo](https://gitee.com/hanxt/dongbb-cloud/tree/netflix/zimug-server-config-repo) * 将aservice-sms服务的application.yml配置文件复制到zimug-server-config-repo目录下,并改名为aservice-sms-dev.yml * 将aservice-rbac服务的的application.yml配置文件复制到zimug-server-config-repo目录下,并改名为aservice-rbac-dev.yml 其文件命名规则为:`{application}-{profile}.yml` * application表示项目的名称,即:`spring.application.name`的配置值 * profile代表基础环境,通常是指:pro(生产)、dev(开发)、test(测试)等等。 **将以上的本地配置文件及文件夹与远程仓库(gitee或github)同步,我们的git仓库构建工作就完成了。**本节默认大家既然已经学习Spring Cloud了,应该是已经具备一定经验的工程师了,已经具备git配置管理的基础能力,所以没有为大家讲解git相关的命令、gitee与github版本管理相关的知识。有相关知识瘸腿的同学自行补课。