1. 什么是配置中心
1.1 什么是配置
应用程序在启动和运行的时候往往需要读取一些配置信息,配置基本上伴随着应用程序的整个生命周期,比如:数据库连接参数、启动参数等。
配置主要有以下几个特点:
配置是独立于程序的只读变量
配置对于程序是只读的,程序通过读取配置来改变自己的行为,但是程序不应该去改变配置
配置伴随应用的整个生命周期
配置贯穿于应用的整个生命周期,应用在启动时通过读取配置来初始化,在运行时根据配置 调整行为。
比如:启动时需要读取服务的端口号、
系统在运行过程中需要读取定时策略执行定时任务等。
配置可以有多种加载方式:
常见的有程序内部hard code,配置文件,环境变量,启动参数,基于数据库等
配置需要治理
同一份程序在不同的环境(开发,测试,生产)、
不同的集群(如不同的数据中心)经常需要有不同的
配置,所以需要有完善的环境、集群配置管理
1.2 什么是配置中心:
在微服务架构中,当系统从一个单体应用,被拆分成分布式系统上一个个服务节点后,配置文件也必须跟着迁移
(分割),这样配置就分散了,不仅如此,分散中还包含着冗余,
配置中心将配置从各应用中剥离出来,对配置进行统一管理,应用自身不需要自己去
管理配置。
在传统巨型单体应用纷纷转向细粒度微服务架构的历史进程中,配置中心是微服务化不可缺少的一个系统组件,在这种背景下中心化的配置服务即配置中心应运而生,一个合格的配置中心需要满足如下特性:
配置项容易读取和修改
分布式环境下应用配置的可管理性,即提供远程管理配置的能力
支持对配置的修改的检视以把控风险
可以查看配置修改的历史记录
不同部署环境下应用配置的隔离性