Dubbo核心概念
Dubbo官網: https://dubbo.apache.org/zh/
Dubbo 是一款高性能、輕量級的開源Java RPC框架,它提供了三大核心能力:面向接口的遠程方法調用,智能容錯和負載均衡,服務自動注冊和發現。分布式系統是將一個系統拆分為多個不同的服務
RPC原理
兩台機器是提供者和消費者,都要創建兩個代理,消費者代理接受到需要遠程調用提供者的提供的方法,
將方法和參數序列化,進行網絡傳輸到提供者機器,之后提供者代理解碼方法和參數,運行自己的方法,
將結果序列號,進行網絡傳輸到消費者機器,之后消費者解碼結果,就能遠程使用提供者提供的方法了。
Dubbo特性一覽
dubbo設計架構
該圖來自Dubbo官網,描述了服務注冊中心、服務提供方、服務消費方、服務監控中心之間的調用關系。
服務提供者(Provider):暴露服務的服務提供方,服務提供者在啟動時,向注冊中心注冊自己提供的服務。
服務消費者(Consumer): 調用遠程服務的服務消費方,服務消費者在啟動時,向注冊中心訂閱自己所需的服務,服務消費者,從提供者地址列表中,基於軟負載均衡算法,選一台提供者進行調用,如果調用失敗,再選另一台調用。
注冊中心(Registry):注冊中心返回服務提供者地址列表給消費者,如果有變更,注冊中心將基於長連接推送變更數據給消費者。
監控中心(Monitor):服務消費者和提供者,在內存中累計調用次數和調用時間,定時每分鍾發送一次統計數據到監控中心。