rpc学习

什么是RPC

RPC:Remote Produre Call-远程过程调用,像调用本地方法一样调用远程方法

RPC原理

RPC采用客户端(服务调用方)/服务端(服务提供方)模式,各自独自运行。客户端需要通过引用需要使用的接口,接口的实现和运行都是在服务端。RPC主要的依赖的技术包括序列化、反序列化和数据传输协议。
img

RPC时序图

img

关于时序图的一些解释:

  • 1.客户端(client)通过本地调用的方式调用服务

  • 2.client stub接收到调用方法之后将参数、方法封装成能够网络传输的消息体(序列化)

  • 3.client stub找到服务地址,并将消息发送到服务端

  • 4.server stub接收消息并解码(反序列化)

  • 5.server stub根据解码结果调用本地服务

  • 6.本地服务奖调用结果返回给server stub

  • 7.server stub将返回结果打包成消息(序列化)发送至调用方

  • 8.client stub接收消息并解码(反序列化)

  • 9.客户端得到最终结果

有关rpc服务与http服务

首先这实际上不是一个并行的概念

rpc是远端过程调用,其调用协议通常包含传输协议和序列化协议。

http服务实际上也是也是一种rpc,只是它是基于http协议的,受协议限制有无用字段开销过大,不支持长连接等缺点,而通常提到的rpc服务一般是基于tcp协议的,在数据传输方面,有传输快请求头数据小的特点

有的时候我们嫌标准 HTTP 太慢/太复杂/不适合特定场景,那么就自己发明一个新的。

推荐阅读更多精彩内容

  • RPC是什么? RPC 的全称是 Remote Procedure Call 是一种进程间通信方式。 它允许程序调...
    1angxi阅读 5,095评论 5 21
  • 最近上手公司一个老项目, 遇到了一个RPC服务调用失败的问题, 由于之前只接触过RestCilent这一种远程服务...
    春风知桺阅读 790评论 0 2
  • IPC和RPC 进程间通信(IPC,Inter-Process Communication),指至少两个进程或线程...
    小pb阅读 220评论 0 0
  • 进程间通信(IPC)是在多任务操作系统或联网的计算机之间运行的程序和进程所采用的通信技术,IPC有两种类型的进程间...
    JunChow520阅读 516评论 0 1
  • 1 介绍 远程过程调用似乎是一种有用的范式,用于在以高级语言编写的程序之间提供跨网络的通信。本文描述一个提供了远程...
    renwujie阅读 3,113评论 0 5
  • 假如拥有无限的时间就能拥有永远不变的情感。 假如日复一日的重来就是生命的全部意义。 假如最好的保护就是从来没有出现...
    蕴_Caroline阅读 106评论 0 0
  • 自从被上一家装饰公司劝退了之后 就一直在想自己的为人处事待人做事的态度,一直以来都是感觉挺好的,不算好但也不算太差...
    迷茫小余阅读 102评论 0 0