边学边记:RPC框架调用过程

RPC是远程过程调用(Remote Procedure Call)的缩写形式。它是一种通过网络请求远
首页 新闻资讯 行业资讯 边学边记:RPC框架调用过程

RPC简介

RPC是远程过程调用(Remote Procedure  Call)的缩写形式。它是一种通过网络请求远程计算机程序上的服务,而不需要了解底层网络技术的协议,代码中不用做额外的编程处理,就像直接调用本地方法一样。

 

[[376896]]

RPC框架角色

在RPC框架中有三个重要的角色:RPC Server、RPC Client和Registry,如下图所示:

 

边学边记:RPC框架调用过程

  • RPC Server:即Provider,暴露服务的服务提供者

  • RPC Client:即Consumer,调用远程服务的服务消费者

  • Registry:服务注册与发现的服务注册中心

RPC核心组件

RPC架构包含五个核心组件,Client,Client Stub,Server,Server Stub,NetWork  Service,Stub可以理解为存根。

 

边学边记:RPC框架调用过程

  • Client:客户端,服务的调用方

  • Client Stub:客户端存根,存放服务端的地址消息,负责将客户端的请求信息组装成网络消息,通过网络远程发送给服务提供方

  • Server:服务端,真正的服务提供方

  • Server Stub:服务端存根,接收客户端发来的消息,并将消息解压后调用本地服务方法

  • NetWork Service:底层网络传输,可以是TCP或HTTP

RPC调用过程

RPC框架的整体调用过程,如下图所示:

 

边学边记:RPC框架调用过程

  1. 客户端Client通过以本地调用的方式,调用远程接口服务;

  2. 客户端存根Client Stub接收到调用后,将调用信息对象进行序列化,组装成网络传输的二进制消息体;

  3. 客户端Client通过Sockets将消息发送到远程服务端;

  4. 服务端存根Server Stub收到消息后,对网络信息对象进行反序列化解码;

  5. 服务端存根Server Stub根据解码结果,调用服务端本地的接口服务;

  6. 本地接口服务执行,并将处理结果返回给服务端存根Server Stub;

  7. 服务端存根Server Stub将返回结果对象进行序列化,组装成消息体;

  8. 服务端Server再通过Sockets将消息发送到客户端;

  9. 客户端存根Client Stub收到结果消息后,对网络信息对象进行序列化解码;

  10. 客户端Client拿到最终接口处理结果。

RPC构架的目标是就是把2、3、4、7、8、9步骤都封装起来,让调用方感觉像是调用本地方法一样。

 

边学边记:RPC框架调用过程

开源的RPC框架

  • Dubbo:国内最早开源的 RPC 框架,由阿里巴巴公司开发并于 2011 年末对外开源,仅支持 Java 语言

  • Spring Cloud:相比Dubbo等RPC框架, Spring Cloud提供全套的分布式系统解决方案

  • gRPC:是Google开发的高性能、通用的开源RPC框架,支持多种语言。

 

35    2021-01-19 09:19:33    RPC 调用过程 框架