Config的原理
本章大致介绍了 Spring Cloud Config 的优点。本小节将介绍 Config 是如何运行的,然后在下一节进行示例的演示。
Config 是一个单独的微服务模块,存在服务端和客户端。这些配置为了方便管理,都会放在 Git 上,这样版本控制起来会比较方便。图14.1是 Config 流程框架图。
在图14.1中,有几个重要的元素,远程 Git、Config-server、本地 Git 以及应用模块。下面对这几个元素进行简单的介绍。
远程 Git:用来存储配置文件,方便进行版本控制,而且 Config 默认远程仓库是 Git。
config-server :是 Config 的配置中心,里面包含了远程 Git 的地址、账号、密码等信息。

Figure 1. 图14.1 config流程框架图
本地 Git:当 config-client 请求配置信息时,首先会从远程 Git 上获取最新的配置到本地 Git,然后从本地 Git 中读取并返回,如果远程 Git 不能使用,则直接读取本地 Git 的内容。
应用A、应用B:这些应用中包含 config-client,当应用启动时会去 config-server 中请求加载配置文件。我们对整体的流程做一个总结。首先,将配置文件存放到远程 Git 上,方便进行版本控制。config-server 在启动时会将远程的配置文件保存一份在本地。
然后应用A、应用B上都配置过 config-client,就是 Config 客户端,我们可以根据需要在 config-server 上取到需要的配置文件。
如果远程 Git 出现了问题,不会影响使用,因为 config-server 与本地 Git 是一个双向连接,不仅会将文件保存到本地,也会从本地上取需要的配置文件给应用A和应用B等 Config 客户端。