首页 >> 大全

rpc(rpc调用和http调用的区别)

2023-05-10 大全 118 作者:考证青年

RPC(一)简单理解RPC

当前,分布式应用、云计算、微服务大行其道,RPC作为其技术基石自然无比重要,甚至可以说,是RPC让它们的流行成为了可能。所以了解并学习RPC的原理和应用就有着不言自明的重要性。然而一开始就去理解过于术语化的文章或者论文对一些新手而言可能有点费劲,那么就从一个简单有趣的故事开始吧。

本篇文章的目的只是希望能够对RPC(远程过程调用)这个概念术语本身有一个简单笼统的理解,仅此而已。内容copy于参考资料。:-)

一个阳光明媚的早晨,老婆又在翻看我订阅的技术杂志。

老公,什么是RPC呀,为什么你们程序员那么多黑话!”,老婆还是一如既往的好奇。

“RPC,就是 Call 的简称呀,翻译成中文就是 远程过程调用 嘛”,我一边看着书,一边漫不经心的回禅辩扮答着。

“啥?你在说啥?谁不知道翻译成中文是什么意思?你个废柴,快给我滚去洗碗!”

“我去...”,我如梦初醒,我对面坐着的可不是一个程序员,为了不去洗碗,我瞬间调动起全部脑细胞,星辰大海在我脑中汇聚灶大,灵感涌现……

“是这样,远程过程调用,自然是相对于本地过程调用来说的嘛。”

“嗯哼,那先给老娘讲讲,本地过程调用是啥子?”

“本地过程调用,就好比你现在在家里,你要想洗碗,那你直接把碗放进洗碗机,打开洗碗机开关就可以洗了。这就叫本地过程调用。”

“哎呦,我可不干,那啥是远程过程调用?”

“远程嘛,那就是你现在不在家,跟姐妹们浪去了,突然发现碗还没洗,打了个电话过来,叫我去洗碗,这就是远程过程调用啦”,多么通俗易懂的解释,我真是个天才!

“哦!我明白了”,说着,老婆开始收拾包包。

“你这是干啥去哦”

“我?我要出门浪去呀,待会记得接收我的远程调用哦,哦不,咱们要专业点,应该说,待会记得接收我的RPC哦!”

……

假设有一个计算器接口,以及它的实现类。那么在系统还是 单机应用 时,要调用的add方法来执行一个加运算,直接new一个,然后调用add方法就行了。这其实就是非常普通的 本地函数调用 ,因为在 同一个地址空间 ,或者说在同一块内存贺灶,所以通过方法栈和参数栈就可以实现。

现在,基于高性能和高可靠等因素的考虑,你决定将系统改造为分布式应用,将很多可以共享的功能都单独拎出来,比如上面说到的计算器,你单独把它放到一个服务里头,让别的服务去调用它。

在本地去调用远程机器上的执行,这个调用过程就是RPC(远程过程调用)。

相信到这里您已经对RPC这一概念术语有了一个笼统的理解。下一篇 RPC(二)浅谈RPC 将可以帮助对RPC的来源以及其设计和实现有更多的理解。

1. 如何给老婆解释什么是RPC

为什么需要rpc

首先要明确两个概念,rpc的中文全称是远程进程调用,意思就是一个机器调用另外一个机器的进程返枯。更像是操作系统里的概念,而http是网络传输协议。

所以这个问题应该是,为什么用自定义的tcp而不是http?

rpc只是对底层协议的封装,对具体使用什么通信协议没有太多的要求

rpc主要包含两个方面,一个是传输协议,一个是序列化协议。

关于序列化协议,其实大家说的rpc支持的二进制编码的序列化,用http也能漏猛洞实现,当然http头还是需要字符编码,但body可以用二进制编码。

所以主要的原因在传输协议上。http传输有一个缺陷就是在一个包中的占比会大,并且是字符编码的,所以会增加了很多无用的噪比。而tcp的报文头只有相对来说要更小一些。

rpc更像是一个操作系统的概念,或者说是一个思想,那就是程序员只管像调用本地的函数一样取调用一个远程函数,而不用管IO。

至于负载均衡和服务知察发现,其实用http也可以实现。但单纯地使用http调用则少了这些特性。

rpc是什么意思 rpc是啥意思

1、RPC()是远程过程调用,它是一厅迹种通过网络册伏衫从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。

2、RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。

3、RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是州腔一个服务器。首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。

什么是RPC?

RPC是远程过程调用( Call)的缩写形式。SAP系统RPC调用的原理其实很简单,有一些类似于三层构架的C/S系统,第三方的客户程序通过接口调用SAP内部的标准或自定义函数,获得函数返回的数据进行处理后显示或打印。

进程间通信(IPC)在多任务操作系统或联网的计算机之间运行的程序和进程所用的通信技术。有两种类型的进程间通信(IPC)。

本地过程调用(LPC)LPC用在多任务操作系统中,使得同时运行的任务能互相会话。这些任务共享内存空间使任务同步和互相发送信息。远程过程调用(RPC)RPC类似于LPC,只是在网上工作。RPC开始是出现在Sun微系统公司和HP公司的运行UNⅨ操作系统的计算机中。

扩展资料

通过IPC和RPC,程序能利用其它程序或计算机处理的进程。客户机/服务器模式计算把远程过程调用与其它技术(如消息传递)一道,作为系统间通信的一种机制。客户机执行自己的任务,但靠服务器提供后端文件服务。

RPC为客户机提供向后端服务器申请服务的通信机制,如图R-4所示。如果你把客户机/服务器应用程序想作是一个分离的程序,服务器能运行数据访问部分,因为它离数据最近,客户机能运行数据表示和与用户交互的前端部分。这样,远程过程调用可看作是把分割的程序通过网络重孝和组的部件。LPC有时也称耦合()机制。

用这种方式分割程序,当用户笑档要访问数据时就无需每次拷贝整个数据库或它的大部分程序到用户系统。其实,服务器只处理请求,甚至只执行一些数据计算,把得出的结果再发送给用户。因为当数据存放在一个地方时,数据库同步很容易实现,所以多个用户可同时访问相同的数据。

分布式计算环境是由一个通信系统——网络连接的计算机集群。很容易把这个网络看成一个计算平台,若是对等方式,其中任何一台计算机都能成为客户机或服务器。

一些处理任务可被分成独立运行程序在不同的网络计算机上并行处理,而独立的程序被交给最适合这个任务的计算机处理。这种策略可利巧升盯用计算机空闲资源,提高网络的效益。一个典型的企业网包括许多运行着不同操作系统的异构计算机系统。

rpc是什么意思

RPC是指远程过程调用。

RPC是指远程过程调用,也就是说两台服务器A、B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方核芦法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。

RPC的主要功能目标是让构建分布式计算(应用)更容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性。为实现该目标,RPC框架需提供一种透明调用机制让使用者不必显式的区分本地调用和远程调用,在前文《浅出篇》中给出了一种实现结构扮差,基于stub的结构来实现。

本地调用和RPC调用的差异

无论RPC怎样努力把远程调用伪装的像本地调用,但它们依然有很大的不同点,而且有一些异常情况是在本地调用时绝对不会碰到的。在说异常处理之前,我们先厅氏皮比较下本地调用和RPC调用的一些差异:

1、本地调用一定会执行,而远程调用则不一定,调用消息可能因为网络原因并未发送到服务方。

2、本地调用只会抛出接口声明的异常,而远程调用还会跑出RPC框架运行时的其他异常。

3、本地调用和远程调用的性能可能差距很大,这取决于RPC固有消耗所占的比重。

什么是RPC服务

俗称远程过程调用,是常用的一种高效的服务调用方式,也是性能压测时经常遇到的一种服务调用形式。常见的RPC有GRPC、、Dubbo等。

RPC简单理解就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函纳山宏数/方法,由于不在个内存空间,不能直接洞册调用,需要通过网络来表达调用的语义和传达调用的数据。

RPC就是要像调用本地的函数一唯带样去调远程函数。假设我们要调用函数Add来计算 * 的结果,直接调用Add方法即可。在远程调用时,我们要执行的函数在远程的机器上。

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了