微服務架構的配置中心apollo

正是基於配置的特殊性,所以Apollo從設計之初就立志於成爲一個有治理能力的配置發佈平臺,目前提供了以下的特性:

一、統一管理不同環境、不同集羣的配置

Apollo提供了一個統一界面集中式管理不同環境(environment)、不同集羣(cluster)、不同命名空間(namespace)的配置。
同一份代碼部署在不同的集羣,可以有不同的配置,比如zookeeper的地址等
通過命名空間(namespace)可以很方便地支持多個不同應用共享同一份配置,同時還允許應用對共享的配置進行覆蓋
配置修改實時生效(熱發佈)

用戶在Apollo修改完配置併發布後,客戶端能實時(1秒)接收到最新的配置,並通知到應用程序

二、版本發佈管理

所有的配置發佈都有版本概念,從而可以方便地支持配置的回滾

三、灰度發佈

支持配置的灰度發佈,比如點了發佈後,只對部分應用實例生效,等觀察一段時間沒問題後再推給所有應用實例

四、權限管理、發佈審覈、操作審計

應用和配置的管理都有完善的權限管理機制,對配置的管理還分爲了編輯和發佈兩個環節,從而減少人爲的錯誤。
所有的操作都有審計日誌,可以方便地追蹤問題

五、客戶端配置信息監控

可以在界面上方便地看到配置在被哪些實例使用

六、提供Java和.Net原生客戶端

提供了Java和.Net的原生客戶端,方便應用集成
支持Spring Placeholder, Annotation和Spring Boot的ConfigurationProperties,方便應用使用(需要Spring 3.1.1+)
同時提供了Http接口,非Java和.Net應用也可以方便地使用

七、提供開放平臺API

Apollo自身提供了比較完善的統一配置管理界面,支持多環境、多數據中心配置管理、權限、流程治理等特性。不過Apollo出於通用性考慮,不會對配置的修改做過多限制,只要符合基本的格式就能保存,不會針對不同的配置值進行針對性的校驗,如數據庫用戶名、密碼,Redis服務地址等
對於這類應用配置,Apollo支持應用方通過開放平臺API在Apollo進行配置的修改和發佈,並且具備完善的授權和權限控制

八、部署簡單

配置中心作爲基礎服務,可用性要求非常高,這就要求Apollo對外部依賴儘可能地少
目前唯一的外部依賴是MySQL,所以部署非常簡單,只要安裝好Java和MySQL就可以讓Apollo跑起來
Apollo還提供了打包腳本,一鍵就可以生成所有需要的安裝包,並且支持自定義運行時參數

apollo與spring Cloud的區別
在這裏插入圖片描述

更多微服務架構相關請關注公衆號,架構師Plus
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章