說起RPC,就不能不提到分布式,這個促使RPC誕生的領域。
假設你有一個計算器接口,Calculator,以及它的實現類CalculatorImpl,那么在系統還是單體應用時,你要調用Calculator的add方法來執行一個加運算,直接new一個CalculatorImpl,然后調用add方法就行了,這其實就是非常普通的本地函數調用,因為在同一個地址空間,或者說在同一塊內存,所以通過方法棧和參數棧就可以實現。
服務器啟動了一個線程監聽 Socket 端口,
有Socket訪問了, 反序列化解析出
調用哪個Service 哪個 方法, 以及傳入的 參數,
再用Socket 寫回去.
簡單rpc框架
暴露服務
客戶端 利用 Jdk 的Proxy 生成了一個代理類,
在創建 Proxy 時建立與服務器的Socket連接.
調用 Proxy 的方法時, 向服務器發送數據, 等待結果返回.
核心就是socket和動態代理
引用遠程服務
prc調用