項目地址
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客戶端獲取最新的配置、訂閱配置更新通知