RPC框架
RPC框架原理 RPC(remote procedure call,远程过程调用),一般用来实现部署在不同机器上的系统之间的方法调用,使得程序能够像访问本地资源一样,通过网络传输去访问远端系统资源。 RPC框架实现原理如下图: Client Code:客户端调用方代码实现,负责发起RPC调用,为调用方用户提供使用API。 Seriaization/Deserialization:负责对RPC调用通过网络传输的内容进行序列化和反序列化,不同的RPC框架有不同的实现机制。主要分为文本和二进制两大类。文本类别的序列化机制主要有XML和JSON两种格式,二进制类别的序列化机制常见的有Java原生的序列化机制,以及Hessian、protobuf、Thrift、Avro、Kryo、MessagePack等,不同的序列化方式在可读性、码流大小、支持的数据类型及性能等方面都存在较大差异,需要用户根据自己的实际情况进行甄别与筛选。 Stub Proxy:可以看作一种代理对象,屏蔽RPC调用过程中复杂的网络处理逻辑,使RPC调用透明化,能够保持与本地调用一样的代码风格。 Transport:作为RPC框架底层的通信传输模块,一般通过Socket在客户端与服务器之间传递请求与应答消息。 Server Code:服务端服务业务逻辑具体的实现。 RMI 什么是RMI Java RMI(Remote