Apollo簡介及工作原理


一、Apollo簡介

  1、Apollo是攜程框架部門研發的分布式配置中心
  2、集中化管理應用的不同環境和不同集群的配置
  3、配置修改后能夠實時推送到應用端
  4、具備規范的權限、流程治理等特性

二、Apollo組成部分

  Apollo包括服務端和客戶端

  服務端:基於Spring Boot和Spring Cloud開發,打包后可以直接運行,不需要額外安裝Tomcat等應用容器
  java客戶端:不依賴任何框架,能夠運行於所有Java運行時環境,同時對Spring/Spring Boot環境也有較好的支持

三、Apollo特性

  1、同意管理不同環境、不同集群的配置
  2、配置修改實時生效(熱發布)
  3、版本發布管理--所有配置都有版本概念,便於配置的回滾
  4、灰度發布--點了發布后只對部分應用實例生效,等觀察一段時沒問題后再推送給所有應用實例
  5、權限管理、發布審核、操作審計
    權限管理--有完善的權限管理
    發布審核--配置管理分了編輯發布兩個環節,減少人為錯誤
    操作審計--所有操作都有審計日志,可以方便追蹤問題
  6、客戶端配置信息監控--可以在界面上方便看到配置在被那些實例使用
  7、提供java和.net原生客戶端,方便應用集成
  8、提供了http接口,非java和.net應用也可以方便地使用
  9、提供開放平套API
  10、部署非常簡單,只要安裝好Java和MySQL就可以讓Apollo跑起來

四、執行流程

  1、用戶在配置中心對配置進行修改並發布
  2、配置中心通知Apollo客戶端有配置更新
  3、Apollo客戶端從配置中心拉取最新的配置、更新本地配置並通知到應用

五、工作原理

 

 

上圖簡要描述了Apollo的總體設計,我們可以從下往上看:
1、Config Service提供配置的讀取、推送等功能,服務對象是Apollo客戶端
2、Admin Service提供配置的修改、發布等功能,服務對象是Apollo Portal(管理界面)
3、Config Service和Admin Service都是多實例、無狀態部署,所以需要將自己注冊到Eureka中並保持心跳
4、在Eureka之上我們架了一層Meta Server用於封裝Eureka的服務發現接口
5、Client通過域名訪問Meta Server獲取Config Service服務列表(IP+Port),而后直接通過IP+Port訪問服務,同時在Client側會做load balance、錯誤重試
6、Portal通過域名訪問Meta Server獲取Admin Service服務列表(IP+Port),而后直接通過IP+Port訪問服務,同時在Portal側會做load balance、錯誤重試
7、為了簡化部署,我們實際上會把Config Service、Eureka和Meta Server三個邏輯角色部署在同一個JVM進程中


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM