项目地址
https://github.com/ctripcorp/apollo.git
Quick Start部署指南
https://github.com/ctripcorp/apollo/wiki/Quick-Start
不过这里需要注意的是,Quick Start只针对本地测试使用,如果要部署到生产环境,还请另行参考分布式部署指南。
注:Quick Start需要有bash环境,Windows用户请安装Git Bash( https://git-for-windows.github.io/ ), 或者也可以直接通过IDE环境启动,详见Apollo开发指南( https://github.com/ctripcorp/apollo/wiki/Apollo开发指南 )。
Apollo Quick Start Docker部署
https://github.com/ctripcorp/apollo/wiki/Apollo-Quick-Start-Docker%E9%83%A8%E7%BD%B2
分布式部署指南
https://github.com/ctripcorp/apollo/wiki/%E5%88%86%E5%B8%83%E5%BC%8F%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97
Java客户端使用指南
https://github.com/ctripcorp/apollo/wiki/Java%E5%AE%A2%E6%88%B7%E7%AB%AF%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97
Apollo Python 客户端
https://github.com/filamoon/pyapollo 实时同步配置、灰度配置
https://github.com/BruceWW/pyapollo 实时同步配置、灰度配置、客户端容灾
https://github.com/xhrg-product/apollo-client-python
客户端设计
- 客户端和服务端保持了一个长连接,从而能第一时间获得配置更新的推送。(通过Http Long Polling实现)
- 客户端还会定时从Apollo配置中心服务端拉取应用的最新配置。
- 这是一个fallback机制,为了防止推送机制失效导致配置不更新
- 客户端定时拉取会上报本地版本,所以一般情况下,对于定时拉取的操作,服务端都会返回304 - Not Modified
- 定时频率默认为每5分钟拉取一次,客户端也可以通过在运行时指定System Property: apollo.refreshInterval来覆盖,单位为分钟。
- 客户端从Apollo配置中心服务端获取到应用的最新配置后,会保存在内存中
- 客户端会把从服务端获取到的配置在本地文件系统缓存一份
- 在遇到服务不可用,或网络不通的时候,依然能从本地恢复配置
- 应用程序可以从Apollo客户端获取最新的配置、订阅配置更新通知