0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是RPC?为什么需要RPC?

阿铭linux 来源:lp 2019-04-16 12:49 次阅读

什么是RPC

RPC 全称 Remote Procedure Call——远程过程调用。在学校学编程,我们写一个函数都是在本地调用就行了。但是在互联网公司,服务都是部署在不同服务器上的分布式系统,如何调用呢?

RPC技术简单说就是为了解决远程调用服务的一种技术,使得调用者像调用本地服务一样方便透明。

下图是客户端调用远端服务的过程:

1)客户端client发起服务调用请求。

2)client stub 可以理解成一个代理,会将调用方法、参数按照一定格式进行封装,通过服务提供的地址,发起网络请求。

3)消息通过网络传输到服务端。

4)server stub接受来自socket的消息

5)server stub将消息进行解包、告诉服务端调用的哪个服务,参数是什么

6)结果返回给server stub

7)sever stub把结果进行打包交给socket

8)socket通过网络传输消息

9)client slub 从socket拿到消息

10)client stub解包消息将结果返回给client。

一个RPC框架就是把步骤2到9都封装起来。

为什么需要RPC

1、首先要明确一点:RPC可以用HTTP协议实现,并且用HTTP是建立在 TCP 之上最广泛使用的 RPC,但是互联网公司往往用自己的私有协议,比如鹅厂的JCE协议,私有协议不具备通用性为什么还要用呢?因为相比于HTTP协议,RPC采用二进制字节码传输,更加高效也更加安全。

2、现在业界提倡“微服务“的概念,而服务之间通信目前有两种方式,RPC就是其中一种。RPC可以保证不同服务之间的互相调用。即使是跨语言跨平台也不是问题,让构建分布式系统更加容易。

3、RPC框架都会有服务降级、流量控制的功能,保证服务的高可用。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 互联网
    +关注

    关注

    54

    文章

    11155

    浏览量

    103303
  • 服务器
    +关注

    关注

    12

    文章

    9160

    浏览量

    85418
  • RPC
    RPC
    +关注

    关注

    0

    文章

    111

    浏览量

    11536

原文标题:RPC协议了解一下

文章出处:【微信号:aming_linux,微信公众号:阿铭linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    HarmonyOS跨进程通信—IPC与RPC通信开发

    使用Binder驱动,用于设备内的跨进程通信,后者使用软总线驱动,用于跨设备跨进程通信。需要跨进程通信的原因是因为每个进程都有自己独立的资源和内存空间,其他进程不能随意访问不同进程的内存和资源,IPC/RPC
    的头像 发表于 02-02 17:47 1285次阅读
    HarmonyOS跨进程通信—IPC与<b class='flag-5'>RPC</b>通信开发

    TSMaster RPC 基础入门:编程指导和使用说明

    介绍RPC模块前,我们先浅聊一下RPC的相关说明,以及在什么样的情况下需要了解本文。1.RPC说明远程过程调用(RPC,RemoteProc
    的头像 发表于 07-13 08:21 868次阅读
    TSMaster <b class='flag-5'>RPC</b> 基础入门:编程指导和使用说明

    Linux rpc编程过程

    通过rpcgen的man手册看到此工具的作用是把RPC源程序编译成C语言源程序,从而轻松实现远程过程调用。
    发表于 07-24 07:25

    RPC的结构原理是什么?

    远程过程调用(RPC)是一个协议,程序可以使用这个协议请求网络中另一台计算机上某程序的服务而不需知道网络细节。(过程调用有时也称作函数调用,或子例行程序调用。)RPC使用client/server模型。请求程序是client,而服务提供程序则为server。
    发表于 10-12 10:43

    直连设备怎么rpc双向控制

    Thing***oard提供非常强大的可视化部件,除了图表、地图车联网外,还有控制部件,通过mqtt rpc可以轻松实现平台 -- 设备端 设备到平台双向数据传输及控制。Thingboard 连接
    发表于 07-12 06:55

    RPC是什么

    RPC是什么?RabbitMQ又是什么?
    发表于 10-08 09:24

    什么是RPC

    什么是RPC   英文原义:Remote Procedure Call Protocol 中文释义:(RFC-1831)远过程调用协议 注  解:一种通过
    发表于 02-23 11:48 914次阅读

    Restful 和 RPC 是什么关系与区别

    本文详细介绍了关于Restful 和 RPC的关系与区别,详细分析请看下文。
    的头像 发表于 02-07 15:35 3.8w次阅读
    Restful 和 <b class='flag-5'>RPC</b> 是什么关系与区别

    为什么需要RPC接口

    论复杂度,RPC框架肯定是高于简单的HTTP接口的。但毋庸置疑,HTTP接口由于受限于HTTP协议,需要带HTTP请求头,导致传输起来效率或者说安全性不如RPC
    发表于 07-13 17:46 2603次阅读

    HTTP和RPC

    TCP是传输层的协议,而基于TCP造出来的HTTP和各类RPC协议,它们都只是定义了不同消息格式的应用层协议而已。
    的头像 发表于 11-23 08:54 933次阅读
    HTTP和<b class='flag-5'>RPC</b>

    RPC接口和HTTP接口的区别与联系

      HTTP服务 RPC接口和HTTP接口的区别与联系 参考文献   HTTP接口和RPC接口都是生产上常用的接口,顾名思义,HTTP接口使用基于HTTP协议的URL传参调用,而RPC接口则
    的头像 发表于 06-17 14:54 1879次阅读
    <b class='flag-5'>RPC</b>接口和HTTP接口的区别与联系

    什么是HTTP协议?什么是RPC协议?二者如何选择使用?

    为什么有了HTTP,还需要RPC协议呢?在进行说明之前,首先我们需要了解什么是HTTP协议,什么是RPC协议。
    的头像 发表于 08-11 09:25 2667次阅读
    什么是HTTP协议?什么是<b class='flag-5'>RPC</b>协议?二者如何选择使用?

    RPC 和 REST 区别是什么

    01. 既 REST ,何 RPC ? 在 OpenStack 里的进程间通信方式主要有两种,一种是基于HTTP协议的RESTFul API方式,另一种则是RPC调用。 那么这两种方式在应用场景上有
    的头像 发表于 11-02 10:40 3133次阅读
    <b class='flag-5'>RPC</b> 和 REST 区别是什么

    鸿蒙开发通信与连接:ohos.rpc RPC通信

    本模块提供进程间通信能力,包括设备内的进程间通信(IPC)和设备间的进程间通信(RPC),前者基于Binder驱动,后者基于软总线驱动。
    的头像 发表于 06-21 09:40 545次阅读
    鸿蒙开发通信与连接:ohos.<b class='flag-5'>rpc</b> <b class='flag-5'>RPC</b>通信

    Dubbo源码浅析(一)—RPC框架与Dubbo

    一、什么是RPC 1.1 RPC概念 RPC,Remote Procedure Call 即远程过程调用,与之相对的是本地服务调用,即LPC(Local Procedure Call)。本地服务调用
    的头像 发表于 08-16 15:18 740次阅读
    Dubbo源码浅析(一)—<b class='flag-5'>RPC</b>框架与Dubbo