工作笔记:初次了解RPC原理

RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。

RPC提供强大的远程调用能力,同时又不失本地调用的简洁。就比如说,A端要远程调用B端的服务,由于RPC提供一种透明调用机制,让调用者对网络通信这些细节透明,使得A端可以像调用本地方法那样调用B端远程服务的方法。

工作笔记:初次了解RPC原理

RPC调用的流程,概括如下:

1、客户端(Client)调用,以本地调用方式调用服务

2、Client Stub收到调用后,将方法参数等信息封装(序列化)成能够网络发送的消息

3、Client Stub将封装好的消息发送到服务端

4、Server Stub接收到客户端句柄(Client Stub)发来的消息,并将得到方法参数等信息(反序列化)

5、Server Stub根据消息调用本地服务(Server)

6、将服务端运行后的结果返回服务端句柄(Server Stub)

7、服务端句柄(Server Stub)将结果封装(序列化)发送到客户端句柄(Client Stub)

8、客户端句柄(Client Stub)接收到结果消息,并进行解码(反序列化)

9、客户端(Client)得到最终结果

而RPC中网络透明,就是将步骤2-8封装起来,使得客户端对这些步骤透明,使用的时候像调用本地方法一样调用远程服务方法就行了,不需要关心里面的处理过程。