RPC(Remote Produce Call)-过程远程调用

基本概念

RPC(Remote Produce Call),过程远程调用,意为一个节点请求另一个节点的服务。

原理

Client端

  1. 将这个调用映射为Call ID。
  2. 将Call ID以及参数序列化,二进制打包。
  3. 将 2 中的数据包发送给 Server 端,使用网络传输层。
  4. 等待 Server 端返回结果。
  5. 如果 Server 端调用成功,就将结果反序列化,取想要的值。

Server端

  1. 在本地维护一个Call ID到函数指针的映射。
  2. 等待 Client 端请求。
  3. 得到请求后,将数据包反序列化,获取Call ID。
  4. 通过查找Call ID对应的映射,得到函数指针。
  5. 将数据包中的参数带入本地对应函数,得到结果。
  6. 将结果序列话后通过网络返回给 Client 端。

RPC的三个特点

  1. 需要事先约定调用的语义(接口语法)
  2. 需要网络传输
  3. 需要约定网络传输中的内容格式