面向服務架構之RPC原理與實例

一、RPC概述

  RPC(Remote Procedure Call)即遠程過程調用,容許一臺計算機調用另外一臺計算機上的程序獲得結果,而代碼中不須要作額外的編程,就像在本地調用同樣。主要是爲了應對當前互聯網項目量級愈來愈大而出現的。git

二、Broker模式介紹

  

 

三、RPC結構拆解

  

 

四、RPC客戶端組件與職責

  -RpcClient:負責導入遠程接口的代理實現github

  -RpcProxy:遠程接口的代理實現編程

  -RpcInvoker:負責編碼和發送調用請求到服務方並等待結果框架

  -RpcProtocol:負責協議的編/解碼性能

  -RpcConnector:負責維護客戶/服務方鏈接通道和發送數據到服務方編碼

  -RpcChannel:數據傳輸通道線程

五、RPC服務端組件與職責

  -RpcServer:負責導出遠程接口代理

  -RpcInvoker:負責調用服務端接口的具體實現並返回結果blog

  -RpcProtocol:負責協議的編/解碼接口

  -RpcAcceptor:負責接收客戶方請求並返回請求結果

  -RpcProcessor:負責在服務方控制調用過程,包括線程池、超時等

  -RpcChannel:數據傳輸通道

六、RPC導出/導入遠程接口

七、RPC數據傳輸

  -傳輸協議:建議選擇穩定性較強的鏈接協議(HTTP、TCP),像UDP就不建議選擇

  -鏈接:長鏈接、短鏈接、心跳機制

八、RPC序列化

  -序列化/反序列化:接口方法、方法參數、調用屬性等

  -編碼格式:XML、JSON、Binary...

  -關注點:效率、字節長度、兼容性...

九、RPC方法調用

  -RpcInvoker:反射機制

  -RpcProcessor:調用效率、資源隔離、超時控制

十、RPC異常處理

  -遠程調用不必定執行

  -遠程調用可能排除RPC框架自帶的異常

  -性能差別

十一、RPC實例

  實例代碼移步https://github.com/cq1415583094/RPC-Demo

相關文章
相關標籤/搜索