本文是对RPC的概念性解释,仅做了解入门
RPC概念
RPC(Remote Procedure Call,远程过程调用)协议是一种使计算机程序可以通过网络调用其他计算机上的程序或服务的协议。它允许程序在不同的地址空间内(即不同的计算机或同一台计算机上的不同进程)执行代码。
简单来说:RPC协议就是用来解决两个系统间方法的调用问题,一个系统可以通过RPC协议调用另外一个系统中的方法,就像调用本地的方法一样。
应用场景
现如今,RPC协议在微服务架构中应用非常广泛。
工作原理
RPC协议的主要特点和工作原理包括:
透明性:调用方不需要了解远程过程的具体实现细节,只需像调用本地过程一样发起调用。
客户端和服务器模型:RPC协议通常基于客户端-服务器模型。客户端发起请求,服务器处理请求并返回结果。
通信方式:RPC使用底层通信协议(如TCP或UDP)在客户端和服务器之间传输数据。
序列化和反序列化:参数和返回值需要在网络上传输,因此需要将数据转换为适合传输的格式(序列化),接收方接收到数据后再恢复为原始格式(反序列化)。
接口定义:为了实现调用的透明性,RPC通常使用接口描述语言(IDL)来定义客户端和服务器之间的通信接口。这些接口描述了可以调用的方法及其参数和返回值。
RPC协议
RPC的实现可以有多种方式和协议,比如:
XML-RPC:使用XML进行数据编码和传输。
JSON-RPC:使用JSON进行数据编码和传输。
gRPC:由Google开发,基于HTTP/2协议并使用Protocol Buffers进行数据序列化。
今天儿童节,休息一下,写不动了,后面再更新。