rpc(remote procedure call)远程进程调用,例如:在分布式或者微服务架构中,服务器A想调用服务器B中的一个方法,由于不在同一个内存空间,不能直接调用,需要通过网络来表达调用的语义和调用的数据。

RPC 工具使用户看起来好像客户端直接调用位于远程服务器程序中的过程。客户端和服务器都有自己的地址空间;也就是说,每个都有自己的内存资源分配给过程使用的数据。下图说明了 RPC 架构。

如图所示,客户端应用程序调用本地存根过程,而不是实现该过程的实际代码。存根被编译并与客户端应用程序链接。客户端存根代码不包含实现远程过程的实际代码:
服务器执行以下步骤来调用远程过程。
然后远程过程运行,可能生成输出参数和返回值。当远程过程完成时,类似的步骤序列将数据返回给客户端。
客户端通过接受网络上的数据并将其返回给调用函数来完成该过程。
运行时库分两部分提供:与应用程序链接的导入库和作为动态链接库 (DLL) 实现的 RPC 运行时库。
服务器应用程序包含对服务器运行时库函数的调用,这些函数注册服务器的接口并允许服务器接受远程过程调用。服务器应用程序还包含由客户端应用程序调用的特定于应用程序的远程过程。