-
-
Notifications
You must be signed in to change notification settings - Fork 10.2k
FAQ
Apollo(阿波罗)是携程框架部门研发的配置管理平台,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。
更多介绍,可以参考Apollo配置中心介绍
一个应用下不同实例的分组,比如典型的可以按照数据中心分,把A机房的应用实例分为一个集群,把B机房的应用实例分为另一个集群。
一个应用下不同配置的分组。 请参考Apollo核心概念之“Namespace”
请参考Apollo使用指南
Apollo是支持的。请参考Apollo使用指南中的三、集群独立配置说明
Apollo是支持的。请参考Apollo使用指南中的四、多个AppId使用同一份配置
由于Apollo Client获取配置没有做任何授权,也就是说只要Client换一个appId就能拿到对应的配置。所以如果只在Portal层面做配置项的隐藏并没有起到实质性的效果。不过一定程度上能更安全一些,后面我们会考虑加入查看权限。 目前阶段,我们建议对于敏感配置,比如数据库连接串等,把加密之后的配置存储在Apollo上,然后自己去解密。 Apollo只做配置的存储和推送。
有多台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做了一个开源配置中心对比矩阵,可以参考一下。
-
设计文档
-
部署文档
-
开发文档
-
系统使用文档
-
FAQ
-
其它