Dubbo--RPC框架
阿新 • • 發佈:2020-12-22
1.Dubbo官方網站: http://dubbo.apache.org/
2.單一應用架構:
打包成一個獨立的單元(jar包和war包)
2.1.可伸縮性差:測試成本高,
2.2.可靠性差:一個模組出錯,另外有關聯的可會有錯
2.3.耦合度高,難以定位錯誤發生在哪
2.4.專案易於管理,部署簡單
3.垂直應用架構
當訪問量逐漸增大,單一應用增加機器帶來的加速度越來越小,提升效率的方法之一 是將應用拆成 互不相干的幾個應用 ,以提升效率。
此時,用於加速前端頁面開發的Web框架(MVC)是關鍵。
使用者系統、許可權系統、商品系統、訂單系統、物流系統....
特點:系統獨立部署,每一個系統都有完整的前後端;
問題:各個系統無法做到完全獨立,公共模組無法複用,系統之間通訊比較麻煩;
4.RPC架構(分散式服務框架):
遠端過程呼叫
應用直接呼叫服務,服務之間相互隔離
服務過多時,管理成本高,要部署好多機器
1. 客戶端以本地呼叫的方式呼叫遠端服務
2. client stub接收到呼叫後,將方法、引數等組裝成能夠進行網路傳輸的訊息;
3. client stub查詢服務地址,找到之後,將訊息傳送到服務端;
4. server stub收到訊息之後,對收到的訊息進行解碼;
5. server stub根據解碼結果,使用反射的方式呼叫本地服務;
6. 服務端執行完成之後將結果返回給Server stub;
7. server stub將返回結果打包成訊息併發送給客戶端;
8. client stub收到訊息後,對結果進行解碼
5.Dubbo框架:
Apache Dubbo 是一款高效能、輕量級的開源 Java 服務框架
Apache Dubbo |ˈdʌbəʊ| 提供了六大核心能力:面向介面代理的高效能RPC呼叫,智慧 容錯和負載均衡,服務自動註冊和發現,高度可擴充套件能力,執行期流量排程,視覺化的服 務治理與運維。
0、容器負責啟動、載入、執行服務提供者、消費者; 1、服務提供者在啟動時,向註冊中心註冊自己提供的服務; 2、服務消費者在啟動時,向註冊中心訂閱自己需要的服務; 3、註冊中心返回服務提供者的地址列表給消費者; 如果有服務變更(服務的上線或下線),註冊中心會基於長連線的方式推送變更 給消費者; 4、服務消費者從地址列表中,基於 軟體負載均衡演算法 ,選擇一個服務提供者進 行呼叫,如果呼叫失敗,可以重試其它提供者; 5、服務消費者和提供者,在記憶體中累計呼叫時間和呼叫次數,每分鐘向監控中 心傳送一次統計資料