前言
在说“配置中心”之前,我们应该先要了解一下配置的概念。什么是配置?我个人理解“配置”即“配置文件”,就是通过文本存储一些程序初始化所需的参数。配置文件应该贯穿于程序的整个生命周期,程序在启动时通过读取配置文件来进行初始化,从而实现根据配置文件控制行为。并且使用配置文件的方式还可以降低代码之间的耦合度,方便后续维护。
举个例子:
工作中,如果项目中有多数据库,一般的做法就是将数据库的连接字符串放在配置文件中,多个数据库的话, 存储过个连接字符串。访问数据库, 根据传递不同的数据库标识, 来实现不同数据库的数据访问。其实这也算是通过读取配置来进行初始化,从而实现不同的行为方式。
配置中心
当我们了解了配置的概念, 那么“配置中心”是什么呢? 顾名思义, “配置中心”就是将配置文件集中存储到一个节点/服务器,让程序通过网络途径去读取配置。那么问题来了,我们将配置文件放在源码中,不好吗?为什么要将配置文件集中存储在其他地方?那是因为现在的项目大多从原始的 “单体架构” 演变成了 “微服务架构” ,从而产生了配置文件冗余,文件分散难维护的问题。为了解决这个问题,从而有了“配置中心”的架构设计。
当把所有的配置文件抽离出来放在配置中心,又产生了新的问题, 例如:配置文件内容发生变化,配置中心单点故障等等。不过现在已经有很多优秀的开源框架已经可以完美解决上述问题,让我们不必将太多精力放在配置中心高可用的问题上。例如:Nacos 、apollo 、AgileConfig等等,这里就不一 一介绍了。