当前位置:主页 > 查看内容

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

发布时间:2021-05-09 00:00| 位朋友查看

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

RPC简介

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

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

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框架,支持多种语言。
【责任编辑:未丽燕 TEL:(010)68476606】
本文转载自网络,原文链接:https://www.toutiao.com/a6918546211687465483/
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文

  • 周排行
  • 月排行
  • 总排行

随机推荐