1、rpc定義:程序員
rpc(遠程過程調用),它是一種經過網絡從遠程計算機獲取服務,就像本地調用服務,不須要程序員瞭解底層的網絡技術協議。數組
好比兩臺服務器A和B,A須要調用B的服務,可是兩者不在同一內存空間,因此沒法直接調用。須要規範調用參數和數據。服務器
經過rpc框架,能夠避免冗餘的網絡通訊代碼,就像調用本地服務同樣,讓使用者對網絡通訊細節透明。網絡
例如:併發
@AutoWired框架
private HelloService helloService;3d
helloService.hello();server
2、rpc調用過程blog
1.消費者以本地調用方式調用遠程服務。內存
2.client stub 將調用方法、參數組裝爲消息體傳輸。
3.client stub 找到服務方,併發送消息。
4.server stub 收到消息,並解碼。
5.server stub 利用解碼結果調用本地服務。
6.server stub 把返回結果打包發動給消費者。
7.client stub接收到消息,並進行解碼。
8.消費者得到調用結果。
rpc的目標是把步驟2-7封裝起來,對用戶透明。