这是我参加「第五届青训营 」伴学笔记创作活动的第 15 天
RPC(Remote Procedure Call,远程过程调用)是一种进程间通信技术,可以让远程计算机上的程序调用另一个计算机上的函数或过程,就像本地程序调用本地函数一样简单。
在RPC中,客户端应用程序发送一个请求消息到远程服务器,请求执行某些特定的操作,服务器收到请求后,执行相应的操作,并将结果返回给客户端。这个过程通常被称为远程调用。
RPC的基本概念包括:
- 接口定义语言(IDL):IDL定义了RPC接口的规范,用于描述远程接口的参数和返回值等信息。IDL通常使用描述性语言,如接口定义语言(IDL)或Web服务描述语言(WSDL)。
- Stub:客户端程序通过Stub与远程服务进行通信,Stub充当了本地程序和远程服务之间的代理。客户端调用本地Stub的函数,Stub将这些函数调用转换为远程调用并将请求发送到服务器。同样,服务器的Stub接收到请求并执行相应的函数,然后将结果返回给客户端。
- 传输协议:RPC需要一个传输协议来在客户端和服务器之间传递数据。常用的传输协议包括TCP和HTTP等。
- 序列化和反序列化:RPC需要将数据序列化为可传输的格式,并在接收端反序列化。常用的序列化协议包括JSON、XML和Protobuf等。
RPC的优点包括:
- 抽象:RPC通过抽象远程调用的细节,让程序员更专注于业务逻辑。
- 模块化:RPC能够将应用程序拆分成可独立部署的模块,降低系统复杂度。
- 跨语言支持:RPC支持多种编程语言,可以在不同的系统之间进行通信。
- 效率高:RPC采用二进制传输,比文本协议传输效率更高。