组团学

认识配置中心

阅读 (9384776)

1、配置中心概述

配置中心是集中管理配置信息的组件。它通常提供配置变更、配置推送、历史版本版本管理、灰度发布、配置变更审计等功能。通过这些功能可以降低分布式系统中管理配置信息的成本,降低因错误的配置信息变更带来可用性下降甚至发生故障的风险。

2、配置信息的管理方式

2.1、使用配置文件

在集中式开发架构中通常使用此种方法。在系统部署到生产环境后,如果需要修改一个配置信息,则需要先登录到服务上修改信息,然后刷新配置文件或重启服务。

这种管理配置信息的方式虽然简单方便,但因为没有集群,所以无法保证服务的高可用。

2.2、使用数据库

网站的系统配置信息大都是存储到数据库的。以MySQL为例,可以把表设计成Key和Value两列,Key是主键,Value是值。

如表:

Key Value
Sitename 刘先生的个人博客
Email 2571535319@qq.com
Filetype |.gif|.jpg|.swf|.rar|
Filesize 4096

这种方法需要单独创建表或者字段,且不能主动刷新。所以,这种方式不能很好地满足分布式系统的配置需求。

在分布式系统中,构建 、发布、配置、上线这些过程如果没有一套科学完整的体系,则会非常复杂、烦锁。它涉及将软件包(JAR、WAR等)分发到多台机器中,如果需要修改配置信息,则不能按集中式的管理办法来实施,需要有一个专业的配置中心来实现分布式系统的配置信息变更,比如:线程池、连接池大小、开关、预案、限流配置、功能特性切换、数据源主备容灾切换、路由规则等。

2.3、使用配置中心

在微服务架构下,可以使用诸如Spring Cloud Config、Apollo、Nacos等专业的配置中心来管理配置信息。通过配置中心,可以动态刷新(自动或手动)配置信息到应用程序中,使修改及时生效。

1.jpg

3、对比主流配置中心

开源的配置中心有很多,比如,360的QConf、淘宝的DIamond、百度的Disconf、携程的Apollo、Apache Commons Configuration、Owner、Cfg4J、Spring Cloud Config等。

主流配置中心对比:

功能 Spring Cloud Config Apollo Nacos Disconf
开源时间 2014年9月 2016年5月 2018年6月 2014年9月
单机部署 Config Server+Git+Spring Cloud Bus Apollo-quickstart+MySQL Nacos单节点 支持
配置实时推送 支持(基于Spring Cloud Bus) 支持(HTTP 长轮询1s内) 支持(HTTP 长轮询1s内) 支持
分布式部署 Config Server+Git+MQ+Spring Cloud Bus Config+Admin+Portal+MySQL Nacos+MySQL Disconf+MySQL
版本管理 支持 支持 支持 支持
配置回滚 支持 支持 支持 支持
灰度发布 支持 支持 支持 支持
权限管理 支持 支持 支持 支持
集群 支持 支持 支持 支持
多环境 支持 支持 支持 支持
监听查询 支持 支持 支持 支持
配置锁 支持 不支持 不支持 不支持
数据一致性 Git保证数据一致性 数据库模拟消息队列 HTTP异步通知
配置界面 统一界面 统一界面 统一界面
单点故障 支持HA部署 支持HA部署 支持HA部署 支持HA部署,高可用由Zookeeper提供
对Spring Cloud的支持 支持 支持 支持 支持

Spring Cloud Config功能全面、强大、可以无缝地和Spring体系相结合,使用方便简单。

需要 登录 才可以提问哦