RPC(Remote Procedure Call)即遠程過程調用,容許一臺計算機調用另外一臺計算機上的程序獲得結果,而代碼中不須要作額外的編程,就像在本地調用同樣。主要是爲了應對當前互聯網項目量級愈來愈大而出現的。git
-RpcClient:負責導入遠程接口的代理實現github
-RpcProxy:遠程接口的代理實現編程
-RpcInvoker:負責編碼和發送調用請求到服務方並等待結果框架
-RpcProtocol:負責協議的編/解碼性能
-RpcConnector:負責維護客戶/服務方鏈接通道和發送數據到服務方編碼
-RpcChannel:數據傳輸通道線程
-RpcServer:負責導出遠程接口代理
-RpcInvoker:負責調用服務端接口的具體實現並返回結果blog
-RpcProtocol:負責協議的編/解碼接口
-RpcAcceptor:負責接收客戶方請求並返回請求結果
-RpcProcessor:負責在服務方控制調用過程,包括線程池、超時等
-RpcChannel:數據傳輸通道
-傳輸協議:建議選擇穩定性較強的鏈接協議(HTTP、TCP),像UDP就不建議選擇
-鏈接:長鏈接、短鏈接、心跳機制
-序列化/反序列化:接口方法、方法參數、調用屬性等
-編碼格式:XML、JSON、Binary...
-關注點:效率、字節長度、兼容性...
-RpcInvoker:反射機制
-RpcProcessor:調用效率、資源隔離、超時控制
-遠程調用不必定執行
-遠程調用可能排除RPC框架自帶的異常
-性能差別
實例代碼移步https://github.com/cq1415583094/RPC-Demo