什么是RPC?-程序员宅基地

技术标签: RPC技术研究  

1、基本定义

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

主要作用是屏蔽网络编程细节,实现调用远程方法就像调用本地方法(同一个进程中的方法)一样的体验。

同时屏蔽底层网络通信的复杂性,让我们更加专注业务逻辑的开发。

2、RPC通信

RPC是一个远程调用,肯定是需要跨服务器而非本机,所以需要网络编程才能实现,这就带来了以下几个问题:

  • Call ID 映射

在本机的函数调用中,函数体是直接通过函数指针来指定的,当函数调用时,编译器会自动调用相应的函数指针。

但是在远程调用中,因为是跨服务器的,两个进程的地址空间是完全不一样的。所以,在RPC中,所有的函数都必须有一个自己的ID,这个ID在所有的进程中都是唯一确定的。

客户端在远程调用时,需要带上这个ID。同时我们需要在客户端和服务端分别维护一个{ 函数 <-> Call ID}的映射表。 两端的表可以不需要完全相同,但是相同函数对应的Call ID必须相同。

当客户端需要远程调用的时候,就需要查一下此表,查询出对应的Call ID , 传输至服务端,服务端也查询映射表,来确定客户端需要调用的函数,最终执行相应的函数代码。

  • 序列化和反序列化

网络传输的数据必须是二进制数据,但是调用方的请求的出入参数都是对象,对象是不能直接在网络中传输的,必须提前把它转换成可传输的二进制数据,这个过程就叫做“序列化”。

服务端必须要做到的是能够正确的从网络传输过来的二进制数据中分割出不同的请求,同时根据请求类型和序列化类型,把二进制的数据还原为请求对象,这个过程叫做“反序列化”。

在RPC调用中,对输入参数对象与返回值对象进行序列化和反序列化是一个必须的过程。

  • 网络通信

RPC在大多数情况下,是一个高并发的调用场景,根据系统内核的支持、编程语言的支持以及IO模型本身的特点,在RPC框架的实现中,在网络通信的处理上,大多数会选择 IO多路复用的方式。

  

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/hero_java/article/details/116698182

智能推荐

分治算法③-使用分治算法实现二分查找-python_python实现分治法二分搜索从控制台输入-程序员宅基地

文章浏览阅读1k次,点赞3次,收藏6次。如果 target >array[mid] ,令 left=middle+1,继续在数组的后半部分进行搜索;如果 target 判定 left_python实现分治法二分搜索从控制台输入

信息系统项目管理师必背核心考点(二十七)关键路径法(CPM)_关键路径的考点-程序员宅基地

文章浏览阅读1k次。科科过为您带来软考信息系统项目管理师核心重点考点(二十七)关键路径法(CPM),内含思维导图+真题_关键路径的考点

【氧化镓】Ga2O3 MOSFET器件的单SEB机制TCAD研究-程序员宅基地

文章浏览阅读636次,点赞8次,收藏9次。本文是一篇关于氧化镓(Ga2O3)金属氧化物半导体场效应晶体管(MOSFET)在单粒子烧毁(single event burnout, SEB)事件中的机制研究的文章。文章通过使用技术计算机辅助设计(TCAD)模拟来探究侧向耗尽型氧化镓MOSFET设备在SEB中的敏感区域和安全操作电压,并提出了辐射损伤机制。

分享一个关于生鲜电商的竞品分析报告-程序员宅基地

文章浏览阅读1.8k次,点赞3次,收藏17次。1.行业分析近年来,生鲜电商在资本的加持下迅速发展。2019年随着资本态度趋于保守,加之多数生鲜电商尚未实现规模化盈利,多家生鲜电商平台开始出现危机,生鲜电商行业又迎来新一轮洗牌,与此同时..._电子商务数据分析测试一一家生鲜店铺为进一步占据更多市场份额,需要对其竞争对手

微信小程序nodejs+uniapp课堂学习资料分享系统+vue-程序员宅基地

文章浏览阅读225次,点赞5次,收藏9次。VScode是我们最常用的网页编辑器,通过日常学习,我们基本熟练运用,在完成项目的过程中,我们可以更加节省时间。网络已成为学生越来越重要的学习渠道和知识来源,交互式教学(学习)的内涵和形式将会随着技术的升级,理念的更新而不断完善和丰富,它的教学组织方法也将朝着多样性的方向发展,交互式教学平台构建的理念、技术和方法也会随之变化,不断趋于完善。作为当代大学生,今后要担负起重任,成为国家的栋梁之材,就必须在大学学习阶段获得充足的知识储备和能力的提高,而充分的课外知识学习就是实现这一目标的重要途径之一。

小程序(六)后端 登录+注册_小程序怎么在后端api系统注册登录-程序员宅基地

文章浏览阅读1.1k次。小程序(六)后端 登录+注册业_小程序怎么在后端api系统注册登录

随便推点

ChatGPT AIGC 办公自动化拆分Excel工作表_ai 拆分excel-程序员宅基地

文章浏览阅读259次。在这样的一份数据源中,我们需要完成将每个人的工资用一个单独的表存放。3.在“移动或复制”对话框中,选择“新工作簿”,然后勾选“将选定工作表复制到新工作簿”选项。chatGPT自动生成的VBA代码就能很轻松的实现工作表拆分,再也不用手动复制与粘贴了。4.点击“确定”,Excel会创建一个新的工作簿,并将您选择的工作表复制到该工作簿中。复制---新建工作表---粘贴,反复这几个步骤进行工作表拆分,即费时又费力。1.打开您的Excel工作簿,选择您要拆分的工作表。5.如果需要拆分多个工作表,请重复上述步骤。_ai 拆分excel

删除一个英文字符串当中所有的字母d C语言学习日志#3_编写程序,删除输入字符串中的字符d-程序员宅基地

文章浏览阅读284次。【代码】删除一个英文字符串当中所有的字母d C语言学习日志#3。_编写程序,删除输入字符串中的字符d

python实现接口上传文件的两种方法_python上传文件-程序员宅基地

文章浏览阅读3.7w次,点赞12次,收藏76次。文件上传:上传图片的类型是file,这里没有用到头部信息import requestsdef sendImg(img_path, img_name, img_type='image/jpeg'): """ :param img_path:图片的路径 :param img_name:图片的名称 :param img_type:图片的类型,这里写的是image/jpeg,也可以是png/..._python上传文件

2019FME博客大赛——为数据而生的FME - 腾讯人口迁徙数据爬取与分析-程序员宅基地

文章浏览阅读1w次,点赞17次,收藏60次。参赛单元:互联网、大数据及云计算作者:刘啸单位:上海垣观数据科技有限公司随着信息技术的发展,大数据的概念越来越引发人们的关注,各种有关于城市的新数据类型也不断涌现,为客观认识城市系统并总结其发展规律提供了重要机遇。本文结合腾讯人口迁徙数据爬取与分析案例,不仅展示了如何利用FME进行支撑城市规划决策的数据分析,也展示了以FME为核心的从数据获取、数据清洗、数据分析、数据可视化等全生...

java实现(如:WORD、EXCEL、PPT、ZIP 等)文件在线预览功能-程序员宅基地

文章浏览阅读1.6w次,点赞9次,收藏72次。附带有各类型附件(如:word,excel,ppt,zip等),用户希望能够有在线预览附件的功能。日常开发中常见的文件格式有pdf,word,Excel,PPT,Html,txt,图片等。pdf,Html,txt,图片这种实现在线预览非常简单,有一些前端的插件可以满足要求。word,Excel,PPT如果要实现在线预览则更难一些。...

解决冰点文库不能使用问题!冰点文库下载器最新版_冰点下载网络链接失败怎么办-程序员宅基地

文章浏览阅读3.2w次。百度文库文档免费下载PDF版,老版本不能用了,百度云盘链接: https://pan.baidu.com/s/1t6owKPMX966FH7uDm2b6GQ 密码: 3mgc _冰点下载网络链接失败怎么办

推荐文章

热门文章

相关标签