当前位置:网站首页>什么是RPC
什么是RPC
2022-04-23 07:48:00 【weixin_46272577】
什么是RPC
以下摘自百度百科
远程过程调用协议
RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底>层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络>通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。
RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发>送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息到达为>止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户>端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。
有多种 RPC模式和执行。最初由 Sun 公司提出。IETF ONC 宪章重新修订了 Sun 版本,使得 ONC RPC 协议成为 >IETF 标准协议。现在使用最普遍的模式和执行是开放式软件基础的分布式计算环境(DCE)。
术语可能有复杂,那我们要怎么去理解RPC呢?
我眼中的RPC
服务提供者提供 ---- 消费者消费
服务提供者在青岛捞海鲜,消费者坐在新疆的餐馆里点了一盘麻辣小龙虾
这中间的过程就是RPC
存在即合理,复杂的东西之所以能持续存在并发展不是无缘无故的,更不是因为高手们故弄玄虚,主要是它能带来某些明显的好处,你对这些东西掌握的越熟练,你会越喜欢它。关于RPC,很早以前的RPC也有其他几种比如DCOM,CORBA,RMI(Java)AXIS等,现在花样就多了去了,基本道理都是用XML或者JSON来传递调用参数和结果。个人体会主要用到的优势是如下几点:
RPC能够跨多种开发工具及平台,比如说企业已有的系统开发完毕或者子系统已经部署交付了,它提供了RPC接口,新的子系统要集成,使用业界通用的RPC接口就可以集成了,你不可能要求原来的开发商再来修改一遍接口,否则的话就变成了信息孤岛;
RPC能够跨多个服务器,这个在其他计算机上很容易透过80端口的RPC来访问各个服务器。其他如TCP消息来访问,尽管高效但不方便而且还要穿透防火墙,尤其不方便网页集成。
举个栗子
远程调用简单说就是发送一个请求给远程机器,远程机器返回一个结果回来的过程,为什么要这么做,单台服务器的性能远远不能满足现在互联网这个体量的用户的需求,就好比你去肯德基点个餐,餐台的服务员把薯条鸡腿汉堡的任务分给不同的人,然后收集起来给你的过程,餐台服务员就相当于调用远程服务.
但假如不这么做,点餐员直接做这些事情(又得点餐,又得炸薯条,炸鸡腿等等),两相比较,你就知道远程调用有什么好处了
简单来说就是无法在一个进程内,甚至一个计算机内通过本地调用的方式完成的需求,比如比如不同的系统间的通讯,甚至不同的组织间的通讯。由于计算能力需要横向扩展,需要在多台机器组成的集群上部署应用。
RPC优缺点
RPC的优点:
- 提升系统可扩展性
- 提升系统可维护性和持续交付能力
- 实现系统高可用
RPC的缺点:
- 一个完善的RPC框架开发难度大,需要人员配置多
- RPC框架调用成功率受限于网络状况
- 调用远程方法对初学者来说难度大
版权声明
本文为[weixin_46272577]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_46272577/article/details/124357151
边栏推荐
- QT reads all files under the path or files of the specified type (including recursion, judging whether it is empty and creating the path)
- Kubernetes in browser and IDE | interactive learning platform killercoda
- 英语课小记(四)
- nn.Module类的讲解
- 基于TCP/IP协议的网络通信实例——文件传输
- 2022.4.11-4.17 AI行业周刊(第93期):AI行业的困局
- The whole house intelligence bet by the giant is driving the "self revolution" of Hisense, Huawei and Xiaomi
- vslam PPT
- AAAI 2022 recruit speakers!!
- An idea plug-in that doesn't work, but can install X
猜你喜欢

LeetCode简单题之重新排列日志文件

通过实现参数解析器HandlerMethodArgumentResolver接口来自定义注解

The simple problem of leetcode is to calculate the numerical sum of strings
![[C语言] 文件操作《一》](/img/89/b19dda13d27e37fedf6736c102245b.png)
[C语言] 文件操作《一》

dried food! Point based: differentiable Poisson solver

Community group purchase applet source code + interface DIY + nearby leader + supplier + group collage + recipe + second kill + pre-sale + distribution + live broadcast

CGM优化血糖监测管理——移宇科技亮相四川省国际医学交流促进会

5.6 comprehensive case - RTU-

Failed to convert a NumPy array to a Tensor(Unsupported Object type int)

Why are there 1px problems? How?
随机推荐
Jetson Xavier NX (3) bazel mediapipe installation
[appium] encountered the problem of switching the H5 page embedded in the mobile phone during the test
LeetCode简单题之重新排列日志文件
Search the complete navigation program source code
QT compilation qtxlsx Library
ansible自動化運維詳解(一)ansible的安裝部署、參數使用、清單管理、配置文件參數及用戶級ansible操作環境構建
常用正则表达式
An example of network communication based on TCP / IP protocol -- file transmission
分布式消息中间件框架选型-数字化架构设计(7)
谈谈那些基础但不简单的股票数据
Transformer-XL: Attentive Language ModelsBeyond a Fixed-Length Context 论文总结
关于ORB——SLAM运行中关键帧位置越来越近的异常说明
情境领导者-第七章、解决绩效问题
ELK生产实践
扎心了!一女子发朋友圈羡慕别人按时发工资被开除,连点赞的同事也一同被开除了...
记录:js删除数组中某一项或几项的几种方法
使用JWT生成与解析Token
idea:使用easyYapi插件导出yapi接口
colorui 解决底部导航遮挡内容问题
The whole house intelligence bet by the giant is driving the "self revolution" of Hisense, Huawei and Xiaomi