【工具和中間件】手寫RPC框架

一、前言

手寫RPC,一步步來看,由於沒有兩臺電腦,就用一個電腦上的兩個工程進行交互。

RPC,遠程過程調用,調用遠程方法像調用本地方法一樣。RPC交互分爲客戶端和服務端,客戶端調用服務端方法,服務端接收數據並打印到控制檯,並response響應給客戶端。

二、服務端與客戶端連接

2.1 構建工程結構

使用idea新建兩個maven Project,架構爲quickstart(因爲我們只是應用程序,不是web程序),分別爲rpcServer 和 rpcClient ,在rpcServer中新建兩個Modul,也都是maven quickstart,分別爲rpcServerApi和rpcServerProvider。

如圖:
在這裏插入圖片描述

注意,無論新建Maven Project還是Maven Modul,事先要設置好idea中的maven home,user settings file,maven repository,類似筆者電腦
在這裏插入圖片描述

2.2 rpcServerApi被rpcServerProvider 和 rpcClient 引用

將rpcServerApi 作爲依賴在rpcServerProvider中使用,然後,將rpcServerApi Maven clean,再Maven install,就可以生成jar包安裝到本地的maven repository中,這樣,讓rpcClient再次引入rpcServerApi作爲依賴。

如圖:
在這裏插入圖片描述

注意,maven quickstart生成爲jar包,maven webapp生成爲war包,這裏rpcServerApi是quickstart,所以maven install是生成jar包(到本地maven repository)。

2.3 服務端和客戶端通信

2.3.1 rpcServerApi 提供接口

在這裏插入圖片描述

2.3.2 rpcServerProvider

在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述

2.3.3 rpcClient

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

2.4 服務端與客戶端交互成功

先運行rpcServerProvider工程的Main類的main方法,啓動服務端,綁定8080端口;然後,啓動rpcClient工程的App類的main方法,去連接8080端口,運行成功:
在這裏插入圖片描述

三、進一步數據傳送

3.1 服務端 rpcServerProvider

在這裏插入圖片描述
將 rpcServerProvider maven install 更新下,這樣更改對於rpcClient就可見了。

3.2 客戶端rpcClient

在這裏插入圖片描述

在這裏插入圖片描述

四、多線程、傳送數據Bean的序列化和反序列化

4.1 服務端 rpcServerProvider

在這裏插入圖片描述

在這裏插入圖片描述

4.2 客戶端 rpcClient

在這裏插入圖片描述

五、服務端反射調用並返回給客戶端

5.1 rpcServerProvider

在這裏插入圖片描述

5.2 rpcClient

在這裏插入圖片描述
在這裏插入圖片描述

六、成功交互

在這裏插入圖片描述

七、小結

手寫RPC完成了。

工程文件:https://download.csdn.net/download/qq_36963950/12482263

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章