1. 程式人生 > 其它 >Apollo——Apollo配置中心設計

Apollo——Apollo配置中心設計

Apollo配置中心設計

一、基礎模型

  1.1、基礎模型

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

  1.2、架構模組

  下圖是Apollo架構模組的概覽,詳細說明可以參考Apollo配置中心架構剖析

上圖簡要描述了 Apollo 的總體設計,我們可以從下往上看:

    • Config Service 提供配置的讀取、推送等功能,服務物件是 Apollo 客戶端

ClientConfig ServiceConfigDBrequestrequestackackClientConfig ServiceConfigDB
    • Admin Service提供配置的修改、釋出等功能,服務物件是Apollo Portal(管理介面)
PortalAdmin ServiceConfigDBr/w, publish appId/cluster/namespacer/w, publish appId/cluster/namespaceackackPortalAdmin ServiceConfigDB
    • Config Service和Admin Service都是多例項、無狀態部署,所以需要將自己註冊到Eureka中並保持心跳
    • 在Eureka之上我們架了一層Meta Server用於封裝Eureka的服務發現介面
Client or PortalMeta ServerEurekadiscovery service's instancesdiscovery service's instancesservice's instancesservice's instancesClient or PortalMeta ServerEureka
    • Client通過域名訪問Meta Server獲取Config Service服務列表(IP+Port),而後直接通過IP+Port訪問服務,同時在Client側會做load balance、錯誤重試
ClientMeta ServerConfig Servicediscovery Config Service's instancesConfig Service's instances(Multiple IP+Port)load balance choose a Config Service instancerequestackloop[until success]ClientMeta ServerConfig Service
    • Portal通過域名訪問Meta Server獲取Admin Service服務列表(IP+Port),而後直接通過IP+Port訪問服務,同時在Portal側會做load balance、錯誤重試
PortalMeta ServerConfig Servicediscovery Admin Service's instancesAdmin Service's instances(Multiple IP+Port)load balance choose a Admin Service instancerequestackloop[until success]PortalMeta ServerConfig Service
    • 為了簡化部署,我們實際上會把Config Service、Eureka和Meta Server三個邏輯角色部署在同一個JVM程序中
JVM Process Config Service Eureka Meta Server

實際部署的架構可以參考部署架構