RPC的核心並不在於使用什麼協議。RPC的目的是讓你在本地調用遠程的方法,而對你來講這個調用是透明的,你並不知道這個調用的方法是部署哪裏。經過RPC能解耦服務,這纔是使用RPC的真正目的。RPC的原理主要用到了動態代理模式,至於http協議,只是傳輸協議而已。簡單的實現能夠參考spring remoting,複雜的實現能夠參考dubbo。spring
簡單的說,服務器
- RPC就是從一臺機器(客戶端)上經過參數傳遞的方式調用另外一臺機器(服務器)上的一個函數或方法(能夠統稱爲服務)並獲得返回的結果。
- RPC 會隱藏底層的通信細節(不須要直接處理Socket通信或Http通信) RPC 是一個請求響應模型。
- 客戶端發起請求,服務器返回響應(相似於Http的工做方式) RPC 在使用形式上像調用本地函數(或方法)同樣去調用遠程的函數(或方法)。