💒

什么是RPC?原理是什么

什么是rpc

rpc(remote procedure call) 即远程过程调用,通过名字我们就能看出 RPC 关注的是远程调用而非本地调用。
为什么需要rpc,如果两个服务运行在不同的进程里,相互通信的化需要进行通过网络编程的方式来实现,rpc的目标是实现跨服务器间调用服务提供方的方法像调用本地方法一样。方法签名信息是通过网络来进行传输,通常底层使用的TCP或者udp等,还包括序列化和反序列化相关的操作。

RPC原理是什么

5个部分
  1. client, 以本地调用的方式调用远程服务
  1. client stub 接收到客户端调用后,负责将方法,参与等组装成能够进行网络传输的消息体, RpcRequest, 找到远程服务的地址,并将消息传递给服务端;
  1. 网络传输
  1. server stub 根据收到的RpcRequest 中的类,方法,参数等信息,调用本地方法;得到方法的执行结果以后,将返回结果组装成RpcResponse 发送到client;
  1. 服务端,负责提供服务方的方法实现。

rpc与http的区别

概念上区分: http是基于tcp的应用层协议。
rpc是一种调用方式,底层也是基于传输层(tcp或者udp), rpc的实现有grpc , dubbo 等。这才是应用层协议。RPC有很多种实现方方式。rpc会有连接池,在效率方面会更高。