为什么要配置中心
传统应用配置痛点:
-
主要采用本地文件静态配置
-
配置散乱格式不标准
-
易引发生产事故
-
配置修改麻烦,周期长
-
配置信息缺少安全审计和版本控制功能
配置中心解决办法:
-
集中式配置,所有配置信息都存放配置中心
-
配置中心统一管理格式,用户不必关注格式
-
环境隔离,不同的环境对应不同的配置,互不干扰;配置错误,可以立即修改,即时生效。
-
配置集中一次修改,实时通知到所有客户端
-
所有修改有历史数据,可按需回退到历史版本
现代配置核心需求:
- 交付件和配置分离、抽象标准化、集中式、高可用、实时性、治理
配置基本概念
配置定义:可独立于程序的可配变量;同一份程序在不同配置下会有不同行为;常见的如连接字符串,应用配置,业务配置等。
配置形态:程序内部hardcode(反模式);配置文件;环境变量;启动参数;基于数据库等
配置治理:权限控制和审计;不同环境、集群配置管理;框架类组件配置管理;灰度发布等
静态配置:环境相关如数据库中间件连接字符串,安全配置如用户名,密码等;
动态配置:应用配置如超时事件,日志级别,限流熔断阈值,黑白名单,功能开关;业务配置如促销规则,贷款额度等;
开关驱动开发(Feature Flag Driven Development)