一.为什么需要配置中心?
由于程序日益复杂,相应的配置也越来越多,对配置的期望也会变高(比如实时性,分环境管理),因此我们需要一个配置中心去管理我们的配置。
二.Apollo是什么?
Apollo是携程框架部门研发的开源配置管理中心,能够集中管理应用在不同环境、不同集群的配置,配置修改后能够实时的推送到应用端,并且有关于权限管理、流程治理等功能。
(一)Apollo支持四个维度管理key-value格式的配置
- application(应用级别的,针对于当前应用)
- environment(环境级别的,在不同环境下可以有不同的配置。比如dev、prod环境)
- cluster(集群。可以根据集群分为不同的配置)
- namespace(命名空间。不同的配置文件,比如db的配置,rpc的配置等等)
(二)Apollo的特性
- 可以统一去管理不同环境、不同集群的配置。
(1)同一份代码部署在不同的集群,可以有不同的配置。
(2)可以通过配置namespace去让不同的应用共享同一份配置(public公共配置),也可以通过关联公共的namespace,并且根据自己的需求对公共配置进行覆盖。(相当于子类可以继承父类,对于父类中的成员,不满足需要的可以自己进行覆盖。) - 支持热发布。在管理界面修改完配置后,客户端可以实时的接收到。(据它的描述,时间为1s)
- 每一次改动配置进行发布,都会有对应的版本的概念,方便后续进行回滚。
- 灰度发布。(是指改动配置点击发布,只针对部分实例生效。待观察之后,没有问题,再推送到所有实例。)
- 权限管理(可以针对不