RPC简介

RPC,英文全称: Remote Procedure Call. 中文名: 远程过程调用,是一个计算机通讯协议.借助RPC可以像调用本地服务一样地调用远程服务.比如两台服务器订单服务器和商品服务器,订单服务器需要调用商品详情的方法,由于两个应用不在一个内存空间,不能直接调用,所以需要通过网络来表达调用的语义和传达调用的数据.需要注意的是RPC不是具体的技术,而是指整个网络远程调用的过程

RPC四个核心组件

Client(客户端),服务的调用方.
Client Stub(客户端存根),存放服务端的地址消息,再将客户端的请求参数打包成网络消息,然后通过网络远程发送给服务方.
Server(服务端),服务的真正提供者.
Server Stub(服务端存根),接收客户端发送过来的消息,将消息捷豹,并调用本地的方法.

  1. 客户端(client)以本地调用方式(即以接口的方式)调用服务;
  2. 客户端存根(client stub)接收到调用后,负责将方法、参数等组装成能够进行网络传输的消息体
    (将消息体对象序列化为二进制);
  3. 客户端通过socket将消息发送到服务端;
  4. 服务端存根( server stub)收到消息后进行解码(将消息对象反序列化);
  5. 服务端存根( server stub)根据解码结果调用本地的服务;
  6. 服务处理(业务处理)
  7. 本地服务执行并将结果返回给服务端存根( server stub);
  8. 服务端存根( server stub)将返回结果打包成消息(将结果消息对象序列化);
  9. 服务端(server)通过socket将消息发送到客户端;
  10. 客户端存根(client stub)接收到结果消息,并进行解码(将结果消息发序列化);
  11. 客户端(client)得到最终结果。

RPC的目标是将 2,3,4,5,7,8,9,10 这些步骤封装起来,只剩下 1,6,11
Dubbo,Feign,gRPC等均属于RPC框架

其他章节 -> 跳转

end

RPC 远程过程调用相关推荐

  1. 130、RPC远程过程调用

    RPC简介 1. 什么是RPC 远程过程调用(英语:Remote Procedure Call,缩写为 RPC,也叫远程程序调用)是一个计算机通信协议.该协议允许运行于一台计算机的程序调用另一台计算机 ...

  2. Windows RPC 远程过程调用

    本文章转载自 http://blog.csdn.net/xxxluozhen/article/details/5605818  作者写的很详细并且通俗易懂 一.什么是远程过程调用 什么是远程过程调用 ...

  3. zkcli远程连接_高级框架第一天RPC:远程过程调用

    RPC:远程过程调用 主要内容 1.项目结构变化 2.RPC简介 3.RMI实现RPC 4.HttpClient实现RPC 5.Zookeeper安装 6.Zookeeper客户端常用命令 7.向Zo ...

  4. 架构师之路 — 分布式系统 — RPC 远程过程调用

    目录 文章目录 目录 RPC RPC 架构 成熟的开演 RPC 框架 RPC RPC(Remote Procedure Call,远程过程调用)是一种计算机程序通信方式,允许运行于一台计算机中的程序调 ...

  5. RabbitMQ学习系列(五): RPC 远程过程调用

    前面讲过一些RabbitMQ的安装和用法,也说了说RabbitMQ在一般的业务场景下如何使用.不知道的可以看我前面的博客,http://www.cnblogs.com/zhangweizhong/ca ...

  6. (扫盲)RPC远程过程调用

    https://blog.csdn.net/mindfloating/article/details/39473807 https://blog.csdn.net/mindfloating/artic ...

  7. 分布式机构 RPC远程过程调用

  8. 远程过程调用RPC简介

    RPC(Remote Procedure Call, 远程过程调用):是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的思想. RPC是一种技术思想而非一种规范或协议,常见RPC技术 ...

  9. RPC(Remote Procedure Calls)远程过程调用

    很长时间以来都没有怎么好好搞清楚RPC(即Remote Procedure Call,远程过程调用)和HTTP调用的区别,不都是写一个服务然后在客户端调用么?这里请允许我迷之一笑~Naive!本文简单 ...

最新文章

  1. instanceof 实现
  2. NuGet学习笔记(2) 使用图形化界面打包自己的类库
  3. 计算机网络第4版潘爱民_学术活动 钱江会计实务精英讲坛预告(第84期)| 何继昌 : 战略视角下之财务分析应用实践 兼选股案例分享...
  4. AC自动机的使用案例
  5. 1007 Maximum Subsequence Sum
  6. 5.1.2 操作系统控制I/O设备的I/O控制器
  7. 经典C语言程序100例之七三
  8. Focal Loss 论文笔记
  9. Python——匿名函数lambda
  10. TCP协议相关属性设置之SO_DONTLINGER属性
  11. 设计模式—适配器模式(思维导图)
  12. 多平台、简洁思维导图工具推荐-幕布[高级会员获取]
  13. 康佳电视手机遥控器android版,康佳电视遥控器
  14. 酷的计算机名字,女生超酷的群名大全
  15. 玩游戏提示计算机内存不足怎么办,打开软件提示内存不足怎么办?电脑提示内存不足解决办法...
  16. 计算机需要权限来执行此操作 win7,Win7系统下“文件夹访问被拒绝 您需要权限来执行操作”解决方法...
  17. 【程序员必备】七夕表白攻略:教你用代码轻松打动她的内心!
  18. 用Vue-cli从头搭建项目
  19. 神经网络利用哪种算法将损失函数的值降到最低
  20. macunity日志目录_Unity-日志文件

热门文章

  1. 计算机系运动会横幅怎么写,运动会横幅标语(精选50条)
  2. 2020年下半年软件设计师下午试题
  3. Python shutil库
  4. 技术实战 I 硬盘无法识别怎么办?
  5. JAVA中Collection接口的方法
  6. 工业物联网云平台助力智慧运维
  7. 调用android手机微博客户端发送微博
  8. 如果我要做一款图片处理软件
  9. linux高颜值终端,Microsoft Terminal 颜值在线的终端模拟器
  10. Java处理XML的三种主流技术及介绍