ServiceComb之配置中心(Apollo)

1. Apollo是什麼?

Apollo(阿波羅)是攜程框架部門研發的配置管理平臺,可以集中化管理應用不一樣環境、不一樣集羣的配置,配置修改後可以實時推送到應用端,而且具有規範的權限、流程治理等特性。nginx

更多介紹,能夠參考Apollo配置中心介紹git

2. Cluster是什麼?

一個應用下不一樣實例的分組,好比典型的能夠按照數據中心分,把A機房的應用實例分爲一個集羣,把B機房的應用實例分爲另外一個集羣。github

3. Namespace是什麼?

一個應用下不一樣配置的分組。 請參考Apollo核心概念之「Namespace」web

4. 我想要接入Apollo,該如何操做?

請參考Apollo使用指南spring

5. 個人應用須要不一樣機房的配置不同,Apollo是否能支持?

Apollo是支持的。請參考Apollo使用指南中的3、集羣獨立配置說明數據庫

6. 我有多個應用須要使用同一份配置,Apollo是否能支持?

Apollo是支持的。請參考Apollo使用指南中的4、多個AppId使用同一份配置緩存

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

從1.1.0版本開始,apollo-portal增長了查看權限的支持,能夠支持配置某個環境只容許項目成員查看私有Namespace的配置。app

這裏的項目成員是指:框架

  1. 項目的管理員
  2. 具有該私有Namespace在該環境下的修改或發佈權限

配置方式很簡單,用超級管理員帳號登陸後,進入管理員工具 - 系統參數頁面新增或修改configView.memberOnly.envs配置項便可。spring-boot

configView.memberOnly.envs

配置加密能夠參考spring-boot-encrypt demo項目

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作了一個開源配置中心對比矩陣,能夠參考一下。

相關文章
相關標籤/搜索