一:RPC?
RPC:remote procedure call 即遠端過程調用。
通俗說:就是不在同一台伺服器(同一記憶體空間)的服務是不能直接調用的,必須要走網絡,走網絡就涉及到【網絡位址,端口,協定和序列化】。
是以RPC隻是一個概念,并非一個具體的技術實作。
那具體的RPC實作有哪些呢? 答:常用的有,Java原生自帶的RMI,hessian,dubbo,gRPC(谷歌的),bRPC,thrift(Facebook的)等。
RPC的核心:通訊和序列化。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2csATSE1UNNpnT1kEVOpGczwEMW1mY1RzRapnTtxkb5ckYplTeMZTTINGMShUYfRHelRHLwEzX39GZhh2css2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xyayFWbyVGdhd3LcV2Zh1Wa9M3clN2byBXLzN3btg3Pn5GcuIzN1ITOwETM0ETMwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
二:RMI
三:Hessian
Hessian使用C/S方式,基于Http協定傳輸,使用hessian二進制序列化。
四:手寫RPC