首页 > 其他分享 >一、什么是RPC

一、什么是RPC

时间:2022-12-12 11:33:58浏览次数:48  
标签:调用 二进制 什么 调方 RPC 序列化 数据

在日常的开发过程中随处可见rpc的身影,特别是在微服务项目流行的今天,各个服务之间基本上都采用rpc进行通信。

那么这里就好好介绍一下RPC吧。

什么是RPC

RPC的全程是Remote Procedure Call,远程过程调用。RPC的目标就是为了屏蔽网络编程的细节,能够像调用本地方法一样调用远程方法。让开发者更专注于业务逻辑本身。

RPC通信流程

RPC的整个流程简单来说就是调用方将调用的方法和参数发送到被调方,被调处理后将结果返回给调用方。

不过由于RPC是一个远程调用,所以肯定需要网络来传输数据。而网络传输的数据是二进制数据,不过调用方的出入参数都是对象,所以需要能够将对象转为二进制数据并且要求可逆,这个过程叫做序列化

被调方收到二进制数据,需要知道一个完整的请求在二进制数据中的起始位置,而这就是我们所定义的协议的工作。大多数协议会分为两部分,分别是数据头和消息体,数据头用于身份识别,包括协议标识、数据大小、请求类型、序列化类型等信息;消息体则是用于请求的业务参数信息。根据协议将二进制数据解析成消息包或者将消息包转变为二进制数据的过程称为编解码

主调方通过将请求序列化与编码,被调方通过解码和反序列化获得请求进行处理获得结果之后通过同样的流程响应给主调方。

由于RPC调用的整个流程是比较固定的,所以为了方便,例如grpc,就会利用proto文件的定义来生成桩代码,用户只需要将具体的业务实现进行注册就可以完成RPC的通信了。

image

希望本节能够让你对RPC整个有个大概的认识,不过有关RPC的实现还有很多细节,比如RPC本身作为网络调用的超时处理,为了传输效率的数据压缩处理,特别是在微服务项目下,RPC与微服务的服务治理的结合等等,都值得去学习了解。

标签:调用,二进制,什么,调方,RPC,序列化,数据
From: https://www.cnblogs.com/smarticen/p/16972498.html

相关文章

  • 圆桌实录 | 为什么不约而同选择了大 Kernel
    在3.19日的“LargeKernelMakesCNNGreatAgain”专题Meetup中,我们组织了一次圆桌讨论,希望能通过讨论一些比较有共性的问题,碰撞出更多新想法。本篇为文字实录,enjoy......
  • redux原理是什么
    前言相信很多人都在使用redux作为前端状态管理库进去项目开发,但仍然停留在“知道怎么用,但仍然不知道其核心原理”的阶段,接下来带大家分析一下redux和react-redux两个库的......
  • 女生学IT到底应该考虑什么?
    首先应该是兴趣。做任何事情都一样,有了兴趣,才有坚持下去的动力,如果你每天做着一件提不起兴趣、索之无味的事情,那么厌倦也是迟早的事。技术类的工作更是如此,需要踏实、......
  • 店铺选址需要调查什么问题?三个问题让店铺客流旺盛
     对于缺乏开店经验的人来说,店铺选址是一件非常让人头条的事情。要想做好选址进行开店,我们就要调查一些问题,那么店铺选址需要调查什么问题?下面铺先生为大家介绍三个问题让......
  • java可以开发电脑桌面应用吗?java开发用什么软件?
    java开发PC桌面程序 Java是一门面向对象编程语言,作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程,那java可以开发电......
  • 网络工程师和网络运维工程师,有什么区别?
    网络工程师VS.网络运维工程师,虽然只差了“运维”2个字,但二者的职业发展、薪酬、就业等方面还是有着很大的差异,仅以薪酬为例如下:   发展前景1、网络工程师 通......
  • 什么是云服务器?
    云服务器(ElasticComputeService,ECS)是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。其管理方式比物理服务器更简单高效。用户无需提前购买硬件,即可迅速创建或......
  • 商标到期了为什么要进行商标续展?
    大家有没有这样的疑问?我们的商标到期了,到底是选择续展还是重新注册呢?续展比重新注册要贵几百块,那我们到底是续展还是重新注册呢?我们这里先给大家聊聊商标续展都有哪些好处吧......
  • Oracle上线包里的@和@@有什么区别?
    Oracle存储过程的发布方式比较古老,使用sqlplus工具,运行一个入口文件,文件内通过@符号的方式调用其他文件或执行入口文件中的sql,而调用其他文件的方法有@、@@、start他们分......
  • O(log(N))是什么意思
    这里借用那个著名故事《国王赏麦》来直观的解释O(log(N))。传说西塔发明了国际象棋而使国王十分高兴,他决定要重赏西塔。西塔说:“我不要你的重赏,陛下,只要你在我的棋盘上赏......