0%

微服务架构系列(二)-配置中心

首先得知道配置中心用来做什么,都有些什么?为什么我们需要配置中心?解决了什么问题?从这些问题进行引人

为什么我们需要配置中心?

首先得知道配置是什么?配置就是服务启动时加载的配置项,通常会单独写个配置文件,将环境、参数、应用等多类配置写入文件;主要为了灵活修改,在不修改项目的前提下也可以修改参数;但这些会有什么问题呢?

存在的问题

  1. 静态配置;无法做到修改配置服务在不重启的情况下加载配置;

  2. 单配置文件无法区分环境;区分环境得使用多个配置文件,易搞混出错导致问题;

  3. 文件过于分散,难维护;所以服务都有一个配置文件维护,当服务更多维护成本将大大增加;

  4. 配置修改无法追溯;配置文件的修改不可追溯,无版本管理;

如何解决的呢?

配置中心就是解决以上问题的,如何解决的呢?

  1. 配置与应用分离,统一管理;

  2. 配置监听实时更新;

  3. 服务过于依赖配置中心,配置中心必须是高可用的;

配置中心的功能与实现

配置中心应提供以下功能:

  1. 从数据源获取配置获取

  2. 监听数据源配置更新

如何封装配置中心模块,并使得其可以集成使用三方中间件;以Kratos配置中心模块的实现为例, 所有数据源应实现以下接口,具体实现见源码;

1
2
3
4
5
6
7
8
9
10
11
// 数据源
type Source interface {
Load() ([]*KeyValue, error)
Watch() (Watcher, error)
}

// 监听器
type Watcher interface {
Next() ([]*KeyValue, error)
Stop() error
}

最后

more