当前位置:首页 » 《休闲阅读》 » 正文

一文弄懂 RPC 通信流程全过程_帅枫的博客

23 人参与  2022年01月03日 08:19  分类 : 《休闲阅读》  评论

点击全文阅读


一文弄懂 RPC 通信流程全过程

什么是 RPC 呢

RPC 的全称是 Remote Procedure Call,即远程过程调用

从字面意思可以知道,远程肯定是指要跨机器而非本机,需要网络编程才能实现。但是不是只要通过网络通信访问到另一台机器的应用程序,就可以称之为 RPC 调用了?

其实 RPC 是帮助我们用来屏蔽网络编程细节,实现调用远程方法就跟调用本地方法(同一个项目中的方法)一样的简单,不需要因为网络编程而写很多与业务无关的代码。总之,RPC 的作用体现在两方面:

  1. 屏蔽远程调用根本地调用的区别,调用远程方法就像调用本地方法一样简单
  2. 隐藏底层网络通信的复杂性,让我们更专注于业务逻辑

RPC 通信流程

一个完整的 RPC 会涉及到哪些步骤呢?

  1. 由于 RPC 的远程调用必然会通过网络来传输数据,且需要保证可靠性,所以 RPC 一般默认采用 TCP 来进行传输
  2. 网络传输的数据必须是二进制数据,但是调用方请求的出入参数都是对象,而对象是无法直接在网络中传输的,因此我们需要把对象转换为二进制数据才能在网络上传输,这个过程我们称之为“序列化”
  3. 当二进制数据进过网络传输给了服务提供方之后,那提供方怎么知道一个请求的数据哪里结束,是一个什么类型的请求呢
  4. 于是我们将数据格式的约定叫做“协议“,一般分为消息头和消息体,服务方根据协议格式就可以从二进制数据中分割出不同的请求来,同时根据请求类型和序列化类型,把二进制的消息体逆向还原成请求对象,称之为”反序列化“
  5. 服务方根据反序列化出来的请求对象找到对应的实现类,完成真正的方法调用,再将结果传输序列化之后通过 TCP 传输给调用方
  6. 调用方再反序列化即可获得应答对象,这样就完成了一次 RPC 调用。

注意:这里序列化是对方法调用的请求信息进行处理,编解码是对网络传输消息进行处理

那 RPC 是怎么简化 API,屏蔽掉 RPC 细节,使用方只需要关注业务接口,像调用本地一样来调用远程方法呢?

  • 由服务提供方给出业务接口申明,在调用方的程序里面, RPC 框架根据调用的服务接口提前生成动态代理实现类,并通过依赖注入等技术注入到声明了接口的相关业务逻辑里面。该代理实现类会拦截所有的方法调用,在提供的方法逻辑里面完成一套完整的远程调用,并把远程调用结果返回个调用方,这样调用方在调用远程方法的时候就像调用本地方法一样。

有上述流程就一定是一个 RPC 框架了吗?

  • RPC 不仅有上述的作用,其真正强大的地方是他的治理功能,比如连接管理、健康检测、负载均衡、熔断限流等等

该文是作者的看极客的学习笔记


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/32560.html

调用  方法  请求  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 家宴过后,我捉奸了庶妹和我老公无广告_庶妹老公侍卫TOP10_小说后续在线阅读_无删减免费完结_
  • 寝室六个人,她们背着我建五人群必读文_太天真申请书冷笑最新阅读_小说后续在线阅读_无删减免费完结_
  • 开局获得狐仙传承结局+番外_江帆赵雪隐藏剧情_小说后续在线阅读_无删减免费完结_
  • 刀锈春根生,白骨犹温完结全文_卫舟棠棠知意一口气完结_小说后续在线阅读_无删减免费完结_
  • 夫君立筷子定我灾星罪名,我改嫁冷宫皇子后他追悔莫及好评_赵荀孟如安青瑶精心编著_小说后续在线阅读_无删减免费完结_
  • 邻居低素质,而我没素质独家番外_老太太赖皮欣欣超长版_小说后续在线阅读_无删减免费完结_
  • 重生后我转嫁首富瘸腿独子,总裁前夫却疯了一口气看完_妹妹傅云琛沈明辉独家番外_小说后续在线阅读_无删减免费完结_
  • 我拒绝给系花捐款后,全系同学悔疯了在线阅读_小说后续在线阅读_无删减免费完结_
  • 我让位给女友的透视眼竹马,他却说如果能重生再也不来了。虐心反转_玉石林若女友推荐_小说后续在线阅读_无删减免费完结_
  • 相国独子的丫鬟砸坏我的玉佩后,我当场拒婚阅读_玉佩陈郡谢氏全新_小说后续在线阅读_无删减免费完结_
  • 手术时,我看着病人惨死最新试读_淼淼陆知衍姜颜全本完结_小说后续在线阅读_无删减免费完结_
  • 男友霸道给我开黑卡,转头却骂我是捞女最新章节_肖年顾客黑卡热文_小说后续在线阅读_无删减免费完结_

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1