认识配置中心

2022-09-15 14:18:12 浏览数 (1)

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等专业的配置中心来管理配置信息。通过配置中心,可以动态刷新(自动或手动)配置信息到应用程序中,使修改及时生效。

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体系相结合,使用方便简单。

0 人点赞