一 、 RPC框架的底層原理封裝
1.客戶端Controller
2.服務端Server
3.業務接口LoginServiceInterface
如圖:
1.首先controller會根據業務員接口,生成一個客戶端socket程序動態代理對象proxy
2.controller通過proxy調用業務的方法,例如:proxy.login(username,password)
3.然後controller調用socket的請求方法
4.通過socket向service發送請求
5.service端soceket收到請求後,會生成接口實現類的動態代理對象
6.調用業務代理對象的具體業務方法,logxinimpl(username,password)
7.獲取方法的返回結果
8.controller通過socket獲取service端的返回結果,並進行接下來的業務處理
二 、RPC通信的好處
通過Hadoop的RPC通信------>java實現那一篇可以看到,通過RPC使得通信更爲方便,將複雜的代碼封裝好,我們需要做的只是簡單的幾步即可:
第一步:
服務端
1. 實現業務接口,寫好實現類
2. RPC.Server server =
new RPC.Builder(conf),傳ip,port等參數即可
第二步:
客戶端
1.得到代理對象Bizable proxy = RPC.getProxy
2.調用方法proxy.sayHi();