首先得知道配置中心用来做什么,都有些什么?为什么我们需要配置中心?解决了什么问题?从这些问题进行引人
为什么我们需要配置中心?
首先得知道配置是什么?配置就是服务启动时加载的配置项,通常会单独写个配置文件,将环境、参数、应用等多类配置写入文件;主要为了灵活修改,在不修改项目的前提下也可以修改参数;但这些会有什么问题呢?
存在的问题
静态配置;无法做到修改配置服务在不重启的情况下加载配置;
单配置文件无法区分环境;区分环境得使用多个配置文件,易搞混出错导致问题;
文件过于分散,难维护;所以服务都有一个配置文件维护,当服务更多维护成本将大大增加;
配置修改无法追溯;配置文件的修改不可追溯,无版本管理;
如何解决的呢?
配置中心就是解决以上问题的,如何解决的呢?
配置与应用分离,统一管理;
配置监听实时更新;
服务过于依赖配置中心,配置中心必须是高可用的;
配置中心的功能与实现
配置中心应提供以下功能:
从数据源获取配置获取
监听数据源配置更新
如何封装配置中心模块,并使得其可以集成使用三方中间件;以Kratos配置中心模块的实现为例, 所有数据源应实现以下接口,具体实现见源码;
1 | // 数据源 |
最后
more