当前位置:网站首页>什么是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 reading and writing XML files
- Install MySQL for Ubuntu and query the average score
- 作文以记之 ~ 二叉树的后序遍历
- form表单 post提交 数据量大的问题
- 微信小程序 catchtap=“toDetail“ 事件问题
- LeetCode中等题之旋转函数
- 数据的删除和修改操作(mysql)
- A simple theme of Typecho with beautiful appearance_ Scarfskin source code download
- AQS & ReentrantLock 实现原理
- [appium] encountered the problem of switching the H5 page embedded in the mobile phone during the test
猜你喜欢
The annotation is self-defined by implementing the parameter parser handlermethodargumentresolver interface
The whole house intelligence bet by the giant is driving the "self revolution" of Hisense, Huawei and Xiaomi
A simple theme of Typecho with beautiful appearance_ Scarfskin source code download
Detailed explanation of ansible automatic operation and maintenance (I) installation and deployment, parameter use, list management, configuration file parameters and user level ansible operating envi
ASAN 极简原理
Goland 调试go使用-大白记录
LeetCode简单题之三除数
stm32以及freertos 堆栈解析
QT reading and writing XML files
通过实现参数解析器HandlerMethodArgumentResolver接口来自定义注解
随机推荐
【深度好文】Flink SQL流批⼀体化技术详解(一)
Interesting JS code
input元素添加监听事件
Data deletion and modification (MySQL)
Discussion on ES6 tail tune optimization
Qt利用QtXlsx操作excel文件
DOM学习笔记---遍历页面所有元素节点
Multi vision slam
输入/输出系统
英语课小记(四)
单点登录 SSO
An idea plug-in that doesn't work, but can install X
Community group purchase applet source code + interface DIY + nearby leader + supplier + group collage + recipe + second kill + pre-sale + distribution + live broadcast
Rearranging log files for leetcode simple question
How to encrypt devices under the interconnection of all things
欧圣电气深交所上市:市值52亿 陆为东父女为美国籍
青苹果影视系统源码 影视聚合 影视导航 影视点播网站源码
QT reads all files under the path or files of the specified type (including recursion, judging whether it is empty and creating the path)
One click cleanup of pycharm and jupyter cache files under the project
QFileDialog 选择多个文件或文件夹