rpc学习

作者: 秋枫残红 | 来源:发表于2020-03-30 23:25 被阅读0次

什么是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原理学习 什么是RPC RPC(Remote Procedure Call Protocol)——远程过程调...

  • RPC远程过程调用概念及实现2018-04-16

    RPC远程过程调用概念及实现 RPC框架学习笔记 >>什么是RPC RPC 的全称是 Remote Procedu...

  • XXL-RPC (1)---RPC请求主流程

    背景和体会 在学习完xxl-job后,接着学习xxl-rpc项目。 xxl-rpc底层的rpc实现的基于netty...

  • 从零开始手写 dubbo rpc 框架

    rpc rpc 是基于 netty 实现的 java rpc 框架,类似于 dubbo。 主要用于个人学习,由渐入...

  • #知识学习之Json-RPC

    知识学习之Json-RPC JSON-RPC技术 JSON-RPC是一个无状态且轻量级的远程过程调用(RPC)协议...

  • RPC学习

    1.http://blog.jobbole.com/92290/ 通俗易懂的讲解rpc,client与server...

  • RPC学习

    一、什么是RPC RPC(Remote Procudure Call),即远程过程调用。简单来说,就比如有2个类,...

  • rpc学习

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

  • gRPC学习笔记——(一)学习铺垫

    (如有不全,烦请指出,后续不断跟进修正) 一、什么是RPC?为什么要学习RPC?有没有RPC的代替品? ——今后所...

  • RPC学习笔记-协议

    RPC协议 RPC协议同HTTP协议一样,都是属于应用层的协议,可以通过学习HTTP的协议来理解RPC协议. HT...

网友评论

      本文标题:rpc学习

      本文链接:https://www.haomeiwen.com/subject/aofiuhtx.html