RPC学习记录

129 阅读1分钟

1. 什么是RPC

RPC是本地主机调用远程主机上的过程,RPC的思想就是尽可能的让一个远程过程调用看起来和本地过程调用一样。

2. RPC的执行过程

前提:客户机必须绑定一个库过程,称为客户存根;服务器必须绑定服务器存根。客户存根可以看作为本地过程调用程序的远程过程调用版本,而服务器存根是客户存根在服务器上的等价物。

执行过程

  1. 客户机操作系统调用本地存根(注意这是一次本地方法调用)
  2. 本地存根将操作系统栈中的参数封装成一个消息
  3. 客户机操作系统进行系统调用,将消息发送给服务器
  4. 服务器将消息交给服务器存根进行处理,服务器存根将消息中的参数提取出来,并把参数加载到操作系统的栈中。
  5. 服务器执行过程调用(注意这是一次本地方法调用),将调用得到的结果交给服务器存根,然后按照原来的路线返回给客户机。

3. 实现RPC的难点

  1. 数据格式的不一致,浮点数、整数在不同的操作系统中的编码不一样,大小端问题
  2. 网络存在的安全性问题,响应可能被篡改。