RPC(Remote Procedure Call 远程过程调用),它是一种通过网络从远程计算机程 序上请求服务,而不需要了解底层网络的技术。
一次完整的 RPC 同步调用流程
- 服务消费方(client)以本地调用方式调用客户端存根;
- 什么叫客户端存根?就是远程方法在本地的模拟对象,一样的也有方法名,也有方 法参数,client stub 接收到调用后负责将方法名、方法的参数等包装,并将包装后的信息通过网络发送到服务端;
- 服务端收到消息后,交给代理存根在服务器的部分后进行解码为实际的方法名和参数
- server stub 根据解码结果调用服务器上本地的实际服务;
- 本地服务执行并将结果返回给 server stub;
- server stub 将返回结果打包成消息并发送至消费方;
- client stub 接收到消息,并进行解码;
- 服务消费方得到最终结果。
RPC 框架的目标就是要中间步骤都封装起来,让我们进行远程方法调用的时候感觉到就像在本地调用一样。