Skip to content
张乐 edited this page Jul 24, 2017 · 28 revisions

1. Apollo是什么?

Apollo(阿波罗)是携程框架部门研发的配置管理平台,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。

更多介绍,可以参考Apollo配置中心介绍

2. Cluster是什么?

一个应用下不同实例的分组,比如典型的可以按照数据中心分,把A机房的应用实例分为一个集群,把B机房的应用实例分为另一个集群。

3. Namespace是什么?

一个应用下不同配置的分组。 请参考Apollo核心概念之“Namespace”

4. 我想要接入Apollo,该如何操作?

请参考应用接入指南

5. 我的应用需要不同机房的配置不一样,Apollo是否能支持?

Apollo是支持的。请参考应用接入指南中的三、集群独立配置说明

6. 我有多个应用需要使用同一份配置,Apollo是否能支持?

Apollo是支持的。请参考应用接入指南中的四、多个AppId使用同一份配置

7. Apollo是否支持查看权限控制或者配置加密?

由于Apollo Client获取配置没有做任何授权,也就是说只要Client换一个appId就能拿到对应的配置。所以如果只在Portal层面做配置项的隐藏并没有起到实质性的效果。不过一定程度上能更安全一些,后面我们会考虑加入查看权限。 目前阶段,我们建议对于敏感配置,比如数据库连接串等,把加密之后的配置存储在Apollo上,然后自己去解密。 Apollo只做配置的存储和推送。

8. 如果有多个config server,打包时如何配置meta server地址?

有多台meta server可以通过nginx反向代理,通过一个域名代理多个meta server实现ha。

9. Apollo相比于Spring Cloud Config有什么优势?

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的适用范围更广一些

10. Apollo和Disconf相比有什么优点?

由于我们自己并非Disconf的资深用户,所以无法主观地给出评价。 不过之前Apollo技术支持群中的热心网友@Krast做了一个开源配置中心对比矩阵,可以参考一下。

Clone this wiki locally