天哪!Config分布式是什么? 它还可以这样~
一、简介:Config分布式配置中心
在常规的开发中,每个微服务都包含代码和配置。其配置包含服务配置、各类开关和业务配置。如果系统结构中的微服务节点较少,那么常规的代码+配置的开发方式足以解决问题。
当系统逐步迭代,其微服务会越来越复杂,慢慢演化成网状依赖结构,这个时候常规的代码+配置的开发方式就并不合适了,因为还要考虑整体系统的扩展性、伸缩性和耦合性等。这些问题中,配置的管理也是非常麻烦的。
如果还是以常规开发形式管理配置,则要承担反复修改编译代码、重启系统、重新打包等风险。所以,一个可以集中管理,带有版本控制的配置中心应运而生。

Spring Cloud Config就是一个分布式配置中心解决方案。其采用集中式管理每个微服务的配置信息,并使用GIT等版本仓库统一存储配置内容,实现版本化管理控制。

二、Spring Cloud Config能做什么?
1、提供服务端和客户端支持(spring cloud config server和spring cloud config client)
2. 集中式管理分布式环境中的配置信息(所有配置文件统一放在了gitee中)
3. 基于spring环境提供配置管理,与spring系列框架无缝结合
4. 可用于任何语言开发环境,基于Http协议。
5. 默认基于GIT仓库实现版本控制。
三、总体架构
本课程中以Gitee作为远程仓库。也可以使用其他git支持的远程仓库。

角色说明,在Spring Cloud Config中包含两个角色:
Spring Cloud Config Server:负责接收Config Client请求,根据请求从GitEE中获取到配置文件。
Spring Cloud Config Client:之前所写的包含配置文件的项目都是Config Client。

Config实现分布式配置中心,主要实现需要以下几个步骤:
1、配置文件可以在本地创建后使用git上传。在学习过程中更加简单的方式是直接在gitee中创建文件,编辑内容。
2、Config Server主要的任务是从Git(远程或本地仓库)获取到配置文件,Config Client通过REST获取到配置文件的内容。
3、Config Client对于Spring Cloud Config是客户端,对于Eureka来说可以是Application Server 也可以是Application Client,新建项目ConfigClientDemo。
4、热刷新指的是服务不重启,不间断对外提供服务,而是重新加载配置内容,初始化应用环境。
5、在一个项目中把配置文件编写完成后在提交到远程git仓库的话,大大减少出错的概率,同时提升了开发效率。

