参考文档:(java配置apollo)
只做简单记录,供自己查看
1.是什么
Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性
2.为什么用
(1)统一管理不同环境、不同集群的配置
(2)配置修改实时生效(热发布)
(3)版本发布管理
(4)灰度发布
(5)权限管理、发布审核、操作审计
(6)客户端配置信息监控
(7)提供Java和.Net原生客户端
(8)提供开放平台API
(9)部署简单
3.使用场景
(1)通过Apollo配置中心实现动态调整Logging Level
(2)动态切换数据源
4.原理
上图简要描述了Apollo客户端的实现原理:
- 客户端和服务端保持了一个长连接,从而能第一时间获得配置更新的推送。(通过Http Long Polling实现)
- 客户端还会定时从Apollo配置中心服务端拉取应用的最新配置。
- 这是一个fallback机制,为了防止推送机制失效导致配置不更新
- 客户端定时拉取会上报本地版本,所以一般情况下,对于定时拉取的操作,服务端都会返回304 - Not Modified
- 定时频率默认为每5分钟拉取一次,客户端也可以通过在运行时指定System Property:
apollo.refreshInterval
来覆盖,单位为分钟。
- 客户端从Apollo配置中心服务端获取到应用的最新配置后,会保存在内存中
- 客户端会把从服务端获取到的配置在本地文件系统缓存一份
- 在遇到服务不可用,或网络不通的时候,依然能从本地恢复配置
- 应用程序可以从Apollo客户端获取最新的配置、订阅配置更新通知