核心組件
ConfigService
-
提供配置獲取接口
-
提供配置推送接口
-
服務於Apollo客戶端
AdminService
-
提供配置管理接口
-
提供配置修改發佈接口
-
服務於管理界面Portal
Client
-
爲應用獲取配置,支持實時更新
-
通過MetaServer獲取ConfigService的服務列表
-
使用客戶端軟負載SLB方式調用ConfigService
Portal
-
配置管理界面
-
通過MetaServer獲取AdminService的服務列表
-
使用客戶端軟負載SLB方式調用AdminService
Eureka
-
用於服務發現和註冊
-
Config/AdminService註冊實例並定期報心跳
-
和ConfigService住在一起部署
MetaServer
-
Portal通過域名訪問MetaServer獲取AdminService的地址列表
-
Client通過域名訪問MetaServer獲取ConfigService的地址列表
-
相當於一個Eureka Proxy
-
邏輯角色,和ConfigService住在一起部署
NginxLB
-
和域名系統配合,協助Portal訪問MetaServer獲取AdminService地址列表
-
和域名系統配合,協助Client訪問MetaServer獲取ConfigService地址列表
-
和域名系統配合,協助用戶訪問Portal進行配置管理
技術架構
Apollo的技術架構是完全的微服務部署架構,但是和apollo的創始人溝通之後,發現其實apollo技術架構一直在不斷的升級,下面就把Apollo的架構版本演變之路通過圖形展示出來,這樣可以更加容易理解Apollo的技術架構
1.0版本
|
---|
2.0版本
|
---|
3.0版本
基於Eureka實現服務註冊發現+客戶端Ribbon配合實現軟路由 |
---|
4.0版本
引入了MetaServer這個角色,它其實是一個Eureka的Proxy,將Eureka的服務發現接口以更簡單明確的HTTP接口的形式暴露出來,方便Client/Protal通過簡單的HTTPClient就可以查詢到Config/AdminService的地址列表 |
---|
5.0版本
Apollo當前完整的技術架構
客戶端推送更新架構
|
---|
服務端機制
|
---|
核心原理
服務端Spring DeferredResult來服務Http Long Polling請求