Skip to content

Latest commit

 

History

History
34 lines (23 loc) · 1.61 KB

rpc.md

File metadata and controls

34 lines (23 loc) · 1.61 KB

RPC简介

参考维基百科中的定义,RPC全称为Remote Procedure Call,是一种通信协议,该协议允许程序调用另一计算机的子程序,而无须为这个交互编写额外的代码。即程序员调用本地函数和RPC函数,方法基本相同。

目标

做为RPC概念的提出者,Nelson在Implementing Remote Procedure Calls中提出了RPC系统的几个目标:

  • 简单
    RPC应该和本地函数调用一样简单,这样分布式计算会更加容易。
  • 高效
  • 安全

考虑到编程语言不一定提供了能表示远程地址的方法,即使提供了远程地址的表示方法,不同计算机间使用共享地址空间的代价也可能大于实际收益,因此RPC舍弃了在不同计算机之前仿真共享地址空间。另外,为保证RPC尽可能的同本地方法调用,一些重要的分布式计算特性,如timeout ,在设计RPC时会被排除。

结构

Nelson指出实现RPC的程序包括如下5个理论部分:

  • user
  • user-stub
  • RPCRuntime
  • server-stub
  • server

整个结构如图:

component

参考