什么是RPC? RPC是什么?

标签: 分布式 RPC 远程调用
127人阅读 评论(0) 收藏 举报
分类:

写在前面: 技术,不要那么复杂

什么是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来传递调用参数和结果。个人体会主要用到的优势是如下几点:
1. RPC能够跨多种开发工具及平台,比如说企业已有的系统开发完毕或者子系统已经部署交付了,它提供了RPC接口,新的子系统要集成,使用业界通用的RPC接口就可以集成了,你不可能要求原来的开发商再来修改一遍接口,否则的话就变成了信息孤岛;
2. RPC能够跨多个服务器,这个在其他计算机上很容易透过80端口的RPC来访问各个服务器。其他如TCP消息来访问,尽管高效但不方便而且还要穿透防火墙,尤其不方便网页集成。

举个栗子

将复杂的事情弄得粗浅易懂,说着简单,做着复杂.可以看看复杂度守恒定律

远程调用简单说就是发送一个请求给远程机器,远程机器返回一个结果回来的过程,为什么要这么做,单台服务器的性能远远不能满足现在互联网这个体量的用户的需求,就好比你去肯德基点个餐,餐台的服务员把薯条鸡腿汉堡的任务分给不同的人,然后收集起来给你的过程,餐台服务员就相当于调用远程服务.
但假如不这么做,点餐员直接做这些事情(又得点餐,又得炸薯条,炸鸡腿等等),两相比较,你就知道远程调用有什么好处了

简单来说就是无法在一个进程内,甚至一个计算机内通过本地调用的方式完成的需求,比如比如不同的系统间的通讯,甚至不同的组织间的通讯。由于计算能力需要横向扩展,需要在多台机器组成的集群上部署应用。

RPC优缺点

RPC的优点:
1. 提升系统可扩展性
2. 提升系统可维护性和持续交付能力
3. 实现系统高可用

RPC的缺点:
1. 一个完善的RPC框架开发难度大,需要人员配置多
2. RPC框架调用成功率受限于网络状况
3. 调用远程方法对初学者来说难度大

查看评论

深入浅出 RPC - 浅出篇

近几年的项目中,服务化和微服务化渐渐成为中大型分布式系统架构的主流方式,而 RPC 在其中扮演着关键的作用。 在平时的日常开发中我们都在隐式或显式的使用 RPC,一些刚入行的程序员会感觉 RPC 比较...
  • mindfloating
  • mindfloating
  • 2014-09-22 11:06:05
  • 56484

RPC原理详解

转自:http://www.cnblogs.com/metoy/p/4321311.html RPC 功能目标 RPC 的主要功能目标是让构建分布式计算(应用)更容易,在提供强大的远程调用能力时不...
  • tanqian351
  • tanqian351
  • 2016-09-26 16:52:39
  • 2377

服务化实战之 dubbo、dubbox、motan、thrift、grpc等RPC框架比较及选型

概述前段时间项目要做服务化,所以我比较了现在流行的几大RPC框架的优缺点以及使用场景,最终结合本身项目的实际情况选择了使用dubbox作为rpc基础服务框架。下面就简单介绍一下RPC框架技术选型的过程...
  • fgyibupi
  • fgyibupi
  • 2017-01-23 11:08:30
  • 32196

RPC浅谈

内容出自:http://blog.csdn.net/mindfloating/article/details/39474123  博主:mindwind-_-RPC 功能目标RPC 的主要功能目标是让...
  • qq_41947226
  • qq_41947226
  • 2018-04-03 10:59:11
  • 11

RPC是什么?

RPC全称为Remote Procedure Call,翻译过来为“远程过程调用”。目前,主流的平台中都支持各种远程调用技术,以满足分布式系统架构中不同的系统之间的远程通信和相互调用。远程调用的应用场...
  • dinglang_2009
  • dinglang_2009
  • 2016-12-04 12:54:32
  • 2920

通俗的解释一下什么是 RPC 框架?

首先了解什么叫RPC,为什么要RPC,RPC是指远程过程调用,也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网...
  • shero_zsmj
  • shero_zsmj
  • 2016-08-18 19:49:35
  • 2430

RPC 框架的发展与现状

RPC(Remote Procedure Call)是一种远程调用协议,简单地说就是能使应用像调用本地方法一样的调用远程的过程或服务,可以应用在分布式服务、分布式计算、远程服务调用等许多场景。说起 R...
  • yancqit
  • yancqit
  • 2016-08-02 14:53:14
  • 406

RPC入门总结(八)Dubbo框架初探

转载:Dubbo架构设计详解 转载:架构设计:系统间通信(15)——服务治理与Dubbo 上篇 转载:架构设计:系统间通信(16)——服务治理与Dubbo 中篇(预热) 转载:架构设计:系统...
  • KingCat666
  • KingCat666
  • 2017-11-27 19:16:12
  • 808

谁能用通俗的语言解释一下什么是 RPC 框架?

谁能用通俗的语言解释一下什么是 RPC 框架? 了解到最近 Java 的 Netty 很火,只知道它是这样类型的一种框架。想了解一下它主要用于解决了什么问题?适用于什么样的场景? ...
  • evilcry2012
  • evilcry2012
  • 2016-11-18 09:54:26
  • 1080

RPC是什么意思?

原文地址:http://baike.baidu.com/link?url=ZV6b0T5v04pem1NluXrFwslmhOosGK3YAeKYBfXHF3J-cg96O7CE9j_opGpKCft...
  • june905206961
  • june905206961
  • 2017-02-04 16:19:53
  • 1890
    个人资料
    持之以恒
    等级:
    访问量: 4277
    积分: 280
    排名: 29万+
    文章存档
    最新评论