2.4 远程过程调用

通信

1. 知识点论述
「2.4 远程过程调用」是《分布式计算系统》通信部分的核心知识点。说明独立节点如何通过进程、线程、RPC 与消息协同工作。本知识点首先把握:目标:远程调用写起来像本地过程调用。学习时请把它放回整门课主线——把独立计算机组织成对用户像一台机器的系统,并用通信、数据放置、复制、容错与调度把这件事做可靠。
2. 视频教程

RPC 是什么?和 HTTP 有什么区别

3. 知识点详解

下面围绕本知识点展开要点说明,建议结合上方视频边看边对照。

  1. 目标:远程调用写起来像本地过程调用。
  2. 步骤:客户过程调用客户存根,存根编组参数,经网络传到服务器存根,解组后调用服务过程,再把结果编组返回。
  3. 参数:基本类型要统一数据表示;指针用 copy-in/copy-out,不能直接传地址。
  4. 绑定:客户进程要找到服务器进程。
  5. 异步 RPC:调用方不等结果;需要结果时再用回调或第二次调用取回。
  6. 也可以把一个 RPC 发到一组服务器。
学习建议:先抓住定义与问题,再理解机制步骤,最后对照应用场景思考“何时用、何时不用、代价是什么”。
4. 应用场景
  • 微服务之间用 gRPC/Thrift 互调。
  • 分布式文件系统、配置中心对客户端暴露过程式接口。
  • 异步 RPC 用于通知类调用,避免阻塞关键路径。