配置中心

在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件

stateDiagram-v2  用户 --> 配置中心: 推送配置  配置中心 --> 微服务1: 获取配置  配置中心 --> 微服务2: 获取配置  配置中心 --> 微服务3: 获取配置
---title: 一个配置中心的使用例子---sequenceDiagram    participant Client as 客户端    participant ConfigAPI as 配置中心接口    participant Storage as 配置存储    Client->>ConfigAPI: /config/service?action=register (Group, Key, Value)    ConfigAPI->>Storage: 保存配置 (Group, Key, Value)    Storage-->>ConfigAPI: 配置存储成功    ConfigAPI-->>Client: 返回注册成功    Client->>ConfigAPI: /config/service?action=unregister (Group, Key)    ConfigAPI->>Storage: 删除配置 (Group, Key)    Storage-->>ConfigAPI: 配置删除成功    ConfigAPI-->>Client: 返回反注册成功    Client->>ConfigAPI: /config/service?action=lookup (Group, Key)    ConfigAPI->>Storage: 查询配置 (Group, Key)    Storage-->>ConfigAPI: 返回配置值 (Value)    ConfigAPI-->>Client: 返回查询结果 (Value)    loop 周期性检查        Client->>ConfigAPI: /config/service?action=getSign (Group)        ConfigAPI->>Storage: 获取 Group 的 sign 值        Storage-->>ConfigAPI: 返回 sign 值        ConfigAPI-->>Client: 返回 sign 值        alt sign 值变更            Client->>ConfigAPI: 拉取最新配置 (Group)            ConfigAPI->>Storage: 获取最新配置            Storage-->>ConfigAPI: 返回最新配置            ConfigAPI-->>Client: 返回最新配置        end    end

配置管理场景

配置中心应该提供的功能

配置中心高可用

启动多个配置中心实例

分布式配置中心

将配置文件信息注册到配置中心平台上,可以使用分布式配置中心实时更新配置文件信息,统一管理配置文件,不需要重新打包发布。

资源隔离

SpringCloudConfig

在Spring Cloud中,有分布式配置中心组件spring cloud config ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库 中。在spring cloud config 组件中,分两个角色,一是config server,二是config client

Apollo

Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景

Nacos