简单来说就是约定,例如商业活动中的合同,在签订合同后,双方严格按照合同来执行, 配置也是如此 应用程序在启动和运行的时候往往需要读取一些配置信息,然后按照配置信息来执行程序
配置主要有以下几个特点:
配置是独立于程序的只读变量: 配置对于程序是只读的,程序通过读取配置来改变自己的行为,但是程序不应该去改变配置
配置伴随应用的整个生命周期 配置贯穿于应用的整个生命周期,应用在启动时通过读取配置来初始化,在运行时根据配置调整行为。 比如:启动时需要读取服务的端口号、系统在运行过程中需要读取定时策略执行定时任务等。
配置可以有多种加载方式 常见的有程序内部hard code,配置文件,环境变量,启动参数,基于数据库等
配置需要治理 同一份程序在不同的环境(开发,测试,生产)、不同的集群(如不同的数据中心)经常需要有不同的 配置,所以需要有完善的环境、集群配置管理
在微服务架构中,当系统从一个单体应用,被拆分成分布式系统上一个个服务节点后,配置文件也必须跟着迁移 (分割),这样配置就分散了,不仅如此,分散中还包含着冗余,如下图:
下图显示了配置中心的功能,配置中心将配置从各应用中剥离出来,对配置进行统一管理,应用自身不需要自己去 管理配置。
配置中心的服务流程如下 1.用户在配置中心更新配置信息 2服务A和服务B及时得到配置更新通知,从配置中心获取配置
总的来说配置中心就是一种统一管理各种应用配置的基础服务组件
在系统架构中,配置中心是整个微服务基础架构体系中的一个组件,如下图,它的功能看上去并不起眼,无非就是 配置的管理和存取,但它是整个微服务架构中不可或缺的一环。
在传统巨型单体应用纷纷转向细粒度微服务架构的历史进程中,配置中心是微服务化不可缺少的一个系 统组件,在这种背景下中心化的配置服务即配置中心应运而生, 一个合格的配置中心需要满足如下特性: