定义

分布式计算中,远程过程调用(英语:Remote Procedure Call,RPC)是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一个地址空间通常为一个开放网络的一台计算机)的子程序,而程序员就像调用本地程序一样,无需额外地为这个交互作用编程(无需关注细节)。RPC是一种服务器-客户端(Client/Server)模式,经典实现是一个通过发送请求-接受回应进行信息交互的系统。

RPC可以分为两部分:用户调用接口 + 具体网络协议。前者为开发者需要关心的,后者由框架来实现。

RPC有什么

我们可以从SRPC的架构层次上来看,RPC框架有哪些层,以及SRPC目前所横向支持的功能是什么:

  • 用户代码(client的发送函数/server的函数实现)
  • IDL序列化(protobuf/thrift serialization)
  • 数据组织 (protobuf/thrift/json)
  • 压缩(none/gzip/zlib/snappy/lz4)
  • 协议 (Sogou-std/Baidu-std/Thrift-framed/TRPC)
  • 通信 (TCP/HTTP)

Reference