?
?
?
節點角色規范
節點 | 角色規格 |
---|---|
Provider | 提供者公開遠程服務 |
Consumer | 消費者致電遠程服務 |
Registry | 注冊表負責服務發現和配置 |
Monitor | 監視器計算服務調用的數量和耗時 |
Container | 容器管理服務的生命周期 |
服務關系
?
Container
負責啟動,加載和運行服務Provider
。Provider
Register
在啟動時向其注冊服務。Consumer
從Register
啟動時開始訂閱所需的服務。Register
將Provider
s列表返回Consumer
,當它更改時,Register
將Consumer
通過長連接將更改的數據推送到。Consumer
Provider
根據軟負載平衡算法選擇s?之一并執行調用,如果失敗,它將選擇另一個Provider
。- 兩者
Consumer
和Provider
都會計算內存中調用服務的次數和耗時,并將統計信息發送到Monitor
每分鐘。
Dubbo具有以下功能:連接性,魯棒性,可伸縮性和可升級性。
?
?
連接性
Register
負責注冊和搜索服務地址(例如目錄服務),Provider
并且Consumer
僅在啟動期間與注冊表交互,并且注冊表不會轉發請求,因此壓力較小- “監視器”負責計算服務調用的數量和耗時,統計信息將首先在
Provider
和Consumer
的內存中匯總,然后發送到Monitor
- “提供商”將服務注冊到“注冊”,并將耗時的統計信息(不包括網絡開銷)報告給“監控器”
- “消費者”從中獲取服務提供商的地址列表,
Registry
根據LB算法直接致電提供商,向上報耗時的統計信息Monitor
,其中包括網絡開銷 - 之間的連接
Register
,Provider
并且Consumer
是長連接,Moniter
是一個例外 Register
Provider
通過長連接意識到存在,當斷開連接時Provider
,Register
會將事件推送到Consumer
- 它不影響已經運行的實例
Provider
和Consumer
甚至所有Register
和Monitor
趴下,因為Consumer
得到的緩存Provider
上榜 Register
并且Monitor
是可選的,Consumer
可以Provider
直接連接
?
?
堅固性
Monitor
的停機時間不會影響使用情況,只會丟失一些采樣數據- 當數據庫服務器出現故障時,
Register
可以通過檢查其緩存將服務Provider
列表返回到Consumer
其中,但是新服務器Provider
無法注冊任何服務 Register
?是一個對等集群,當任何實例出現故障時,它將自動切換到另一個集群- 即使所有
Register
實例都發生故障,Provider
并且Consumer
仍然可以通過檢查其本地緩存來進行通信 - 服務
Provider
是無狀態的,一個實例的停機時間不會影響使用情況 Provider
一個服務的所有s故障后,Consumer
無法使用該服務,并無限地重新連接以等待服務Provider
恢復
?
?
可擴展性
Register
?是一個可以動態增加其實例的對等群集,所有客戶端將自動發現新實例。Provider
是無狀態的,它可以動態地增加部署實例,并且注冊表會將新的服務提供者信息推送到Consumer
。
可升級性
當服務集群進一步擴展并且IT治理結構進一步升級時,需要動態部署,并且當前的分布式服務體系結構不會帶來阻力。這是未來可能的架構:
?
節點角色規范
節點 | 角色規格 |
---|---|
Deployer | 用于自動服務部署的本地代理 |
Repository | 該存儲庫用于存儲應用程序包 |
Scheduler | 調度程序會根據訪問壓力自動增加或減少服務提供商 |
Admin | 統一管理控制臺 |
Registry | 注冊表負責服務發現和配置 |
Monitor | 監控器計算服務呼叫時間和時間 |