Apollo(阿波罗)是携程框架部门研发的配置管理平台,可以集中化管理应用不一样环境、不一样集群的配置,配置修改后可以实时推送到应用端,而且具有规范的权限、流程治理等特性。nginx
更多介绍,能够参考Apollo配置中心介绍git
一个应用下不一样实例的分组,好比典型的能够按照数据中心分,把A机房的应用实例分为一个集群,把B机房的应用实例分为另外一个集群。github
一个应用下不一样配置的分组。 请参考Apollo核心概念之“Namespace”web
请参考Apollo使用指南spring
Apollo是支持的。请参考Apollo使用指南中的3、集群独立配置说明
数据库
Apollo是支持的。请参考Apollo使用指南中的4、多个AppId使用同一份配置
缓存
从1.1.0版本开始,apollo-portal增长了查看权限的支持,能够支持配置某个环境只容许项目成员查看私有Namespace的配置。app
这里的项目成员是指:框架
配置方式很简单,用超级管理员帐号登陆后,进入管理员工具 - 系统参数
页面新增或修改configView.memberOnly.envs
配置项便可。spring-boot
配置加密能够参考spring-boot-encrypt demo项目
有多台meta server能够经过nginx反向代理,经过一个域名代理多个meta server实现ha。
Spring Cloud Config的精妙之处在于它的配置存储于Git,这就自然的把配置的修改、权限、版本等问题隔离在外。经过这个设计使得Spring Cloud Config总体很简单,不过也带来了一些不便之处。
下面尝试作一个简单的小结:
功能点 | Apollo | Spring Cloud Config | 备注 |
---|---|---|---|
配置界面 | 一个界面管理不一样环境、不一样集群配置 | 无,须要经过git操做 | |
配置生效时间 | 实时 | 重启生效,或手动refresh生效 | Spring Cloud Config须要经过Git webhook,加上额外的消息队列才能支持实时生效 |
版本管理 | 界面上直接提供发布历史和回滚按钮 | 无,须要经过git操做 | |
灰度发布 | 支持 | 不支持 | |
受权、审核、审计 | 界面上直接支持,并且支持修改、发布权限分离 | 须要经过git仓库设置,且不支持修改、发布权限分离 | |
实例配置监控 | 能够方便的看到当前哪些客户端在使用哪些配置 | 不支持 | |
配置获取性能 | 快,经过数据库访问,还有缓存支持 | 较慢,须要从git clone repository,而后从文件系统读取 | |
客户端支持 | 原生支持全部Java和.Net应用,提供API支持其它语言应用,同时也支持Spring annotation获取配置 | 支持Spring应用,提供annotation获取配置 | Apollo的适用范围更广一些 |
因为咱们本身并不是Disconf的资深用户,因此没法主观地给出评价。 不过以前Apollo技术支持群中的热心网友@Krast作了一个开源配置中心对比矩阵,能够参考一下。