RPC基本原理
概念
- RPC远程过程调用RemoteProcedureCall
- 用于支持异构型分布式系统间的通信
- 像调用本地方法一样调用远程方法 ```java UserService service = new UserService(); User user = service.findById(1);
UserService service = Rpcfx.create(UserService.class,url); User user = service.findById(1); ```
原理
- 核心是代理机制
- 本地代理存根Stub
- 远程服务存根Skeleton
-
设计
RPC是基于接口的远程服务调用
本地和远程需要共享
-
序列化
语言原生的序列化:RMI(Java语言互通),Remoting(.net语言互通)
- 二进制平台无关:Hession,avro,kyro,fst
-
网络传输
TCP/SSL
-
查找实现类
通过接口查找服务端的实现类
- 一般是注册方式,例如dubbo默认将接口和实现类配置到spring
