1. 程式人生 > 實用技巧 >Dubbo--RPC框架

Dubbo--RPC框架

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、服務消費者和提供者,在記憶體中累計呼叫時間和呼叫次數,每分鐘向監控中 心傳送一次統計資料