在我的前文《微服务架构之什么是微服务》中,提到了微服务架构的集中式管理概念。传统的单个服务应用,演变成包含成百上千个微服务搭建的微服务架构应用,必然造成应用系统服务配置管理难度成倍增加。为什么微服务架构还如此备受推崇呢?
老子说:“道生一,一生二,二生三,三生万物”。老子所说的一、二、三,并不是表达具体的事物和具体数量。它们只是表示“道”生万物从少到多,从简单到复杂的一个过程。不得不让人佩服,他老人家在几千年前就已经预料到了单个服务应用,发展成微服务架构应用的必然趋势。易经里也说:“穷则变,变则通,通则久”。任何一门技术发展的瓶颈,自然而然会诞生新的技术发展方向。
言归正传。对于传统的单个服务应用,使用配置文件管理应用系统所有的配置,配置内容以文件或数据库的方式持久化。如下图所示:
微服务架构包含若干个微服务,每一个微服务都将配置不同的运行参数内容,甚至于在不同环境下进行配置。对于微服务架构而言,一个通用的配置管理机制是必不可少的,常见的做法是使用配置服务器统一管理配置。微服务架构应用配置包括微服务客户端、配置管理服务器端和配置文件三部分。如下图所示:
其中,微服务客户端应用启动时,会从配置管理服务器端请求与自己相关的配置参数内容,然后缓存本地化应用,以提升微服务应用运行效率。
配置管理服务器端集中管理微服务应用在各个运行环境下的配置内容。运行期间可动态调整配置参数,且不停止微服务运行。另外,配置内容的变化,也能够自动更新到微服务客户端本地。
配置文件存储方式采用本地文件系统或方便版本控制与内容审计的存储系统,如Spring Cloud默认使用Git存储配置内容。
微服务架构集中式管理知识博大精深,以上内容仅仅是原理性的理解和描述,实际要研究和学习的内容远远不止于此。更多技术细节和应用实践技巧,待进一步研究Spring Cloud相关内容。
学无止境、学海无涯。