RPC 框架的核心原理是通过代理、序列化、网络传输、反序列化、反射等技术,实现远程过程调用的透明化。核心流程如下:
- 客户端通过代理对象(Proxy)调用远程服务,代理对象将调用信息(比如方法名、参数等)进行序列化(Serialzation),转换成字节流;
- 客户端通过网络传输(Transport)将序列化厚的字节流发送给服务端,服务端收到字节流后进行反序列化(Deserialization),还原成调用信息。
- 服务端通过反射(Reflection)根据调用信息找到对应的服务信息(Service)和方法(Method),并执行方法,得到返回结果。
- 服务端将返回结果进行序列化,转换成字节流,通过网络传输发送给客户端,客户端接收到字节流后,进行反序列化,还原成返回结果。
- 客户端通过代理对象返回结果给调用者,完成远程过程调用。调用过程流程图如下: