RPC
rpc(Remote Procedure Call) 概念:rpc(远程过程调用)是一个通信协议,该协议允许运行于一台计算机的程序调用另一台计算机的程序。 角色: 消费方: 客户端(client) 负责发起服务的调用。 客户端存根(client stub) 负责与提供方通信: 1>存放着提供方的地址等信息。 2>将客户端的请求参数打包成网络消息,然后(通过socket)发送给提供方。 3>(通过socket)接收提供方返回的消息,并将消息解包然后将执行的结果返回给客户端。 提供方: 服务器(server) 服务提供者、执行者,将执行的结果返回给服务端存根。 服务端存根(server stub) (通过socket)接收消费方发送过来的消息,将消息解包,并调用服务器上的服务,最后将执行结果打包成消息(通过socket)发送给消费方。 RPC请求调用的流程: 请求:消费方 =======> 提供方 客户端 --> 客户端存根 --> 服务端存根 --> 服务器:执行请求。 响应:提供方 =======> 消费方 服务器 --> 服务端存根 --> 客户端存根 --> 客户端:得到请求的结果。 和http请求的对比: 性能: http协议传输的报文比较臃肿,rpc传输的报文相对较小,故rpc的传输效率更高一些。 rpc框架一般都支持多种高效的序列化机制