1.RPC 是什么?与SOCKET、 HTTP、Web service什么关系?

2.RPC的结构:程序号、程序版本号、过程号

3.RPC基本组成:客户端(client)、客户端存根(client Stub)、服务端(Server Stub)、服务端(server)

4.RPC基本过程: 9步。

5.RPC 开源框架:gRPC、Thrift 、Dubbo

1.RPC 是什么?   远程过程调用(Remote Procedure Call RPC)

干什么的?进程间通信,像调用本机exe一样调用其它机器的进程。

包含传输协议(如http2)和编码协议(文本编码xml json,二进制编码 protobuf binpack )

与SOCKET的关系:  rpc封装了socket是属于上层的应用。

socket属于底层灵活效率高, rpc是上层用起来简单。

与HTTP的关系:   传输协议:http支持连接池复用,建立一定的连接不断开,不会频繁创建和销毁连接。

rpc (thrift二进制传输)

编码协议:差异不大

http好比普通话 rpc好比团伙内的黑话

与Web service的关系:web service接口就是RPC中的stub组件

2.RPC的结构:    程序号、程序版本号、过称号

3.RPC基本组成:

3.1客户端(Client):服务调用方(服务消费者)

3.2客户端存根(Client Stub):存放服务端地址信息,将客户端的请求参数数据信息打包成网络消息,再通过网络传输发送给服务端

3.3服务端存根(Server Stub):接收客户端发送过来的请求消息并进行解包,然后再调用本地服务进行处理

3.4服务端(Server):服务的真正提供者

4.RPC基本过程:

9步:

1.      服务消费方(client)调用以本地调用方式调用服务;

2.      client stub接收到调用后负责将方法、参数等组装成能够进行网络传输的消息体;

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

4.      server stub收到消息后进行解码;

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

6.      本地服务执行并将结果返回给server stub;

7.      server stub将返回结果打包成消息并发送至消费方;

8.      client stub接收到消息,并进行解码;

9.      服务消费方得到最终结果。

java进程间通信rpc_进程间通信-浅谈RPC- 最小原型相关推荐

  1. 浅谈javascript中原型(prototype)、构造函数、对象实例及三者之间的关系

    转自:http://www.cnblogs.com/zhangwei412827/archive/2012/12/14/2816263.html 浅谈javascript中原型(prototype). ...

  2. java的byte php_java_浅谈java的byte数组的不同写法,(由于篇幅原因阐述的不够详 - phpStudy...

    浅谈java的byte数组的不同写法 (由于篇幅原因阐述的不够详细科学,不喜勿喷). 经常看到java中对byte数组的不同定义,粗略整理的一下: 一个字节(byte)=8位(bit),"b ...

  3. java对象头_浅谈java对象结构 对象头 Markword

    概述 对象实例由对象头.实例数据组成,其中对象头包括markword和类型指针,如果是数组,还包括数组长度; | 类型 | 32位JVM | 64位JVM| | ------ ---- | ----- ...

  4. java bitset用途_浅谈Java BitSet使用场景和代码示例

    搜索热词 @H_502_0@一.什么是BitSet? @H_502_0@ 注:以下内容来自JDK API: @H_502_0@ BitSet类实现了一个按需增长的位向量.位Set的每一个组件都有一个b ...

  5. java 多线程同步_浅谈Java多线程(状态、同步等)

    Java多线程是Java程序员必须掌握的基本的知识点,这块知识点比较复杂,知识点也比较多,今天我们一一来聊下Java多线程,系统的整理下这部分内容. 一.Java中线程创建的三种方式: 1.通过继承T ...

  6. java list数组排序_浅谈对象数组或list排序及Collections排序原理

    常需要对list进行排序,小到List,大到对自定义的类进行排序.不需要自行归并或堆排序.简单实现一个接口即可. 本文先会介绍利用Collections对List进行排序,继而讲到Collection ...

  7. java虚拟机类加载机制浅谈_浅谈Java虚拟机(三)之类加载机制

    在<浅谈Java虚拟机>这篇文章中,我们提到了JVM从操作系统方面来说,可以将其看做是一个进程,分别有类加载器子系统,执行引擎子系统和垃圾收集子系统.这一篇文章就简单的来谈一下类加载器子系 ...

  8. java缓存同步_浅谈JSON的数据交换、缓存问题和同步问题

    JSON轻量级的数据交换格式 相对于XML来说,JSON的解析速度更快,文档更小. JSON的格式 {属性名:属性值,属性名:属性值,--} 属性名的类型可以是string,number,boolea ...

  9. java手动回收_浅谈java是如何做资源回收补救的

    学习java的过程,我们经常谈论一个对象的回收,尤其是资源类型,如果没有显示的关闭,对象就被回收了,说明出现了资源泄漏.java本身为了防止这种情况,做了一些担保的方式,确保可以让未关闭的资源合理回收 ...

  10. java同名函数_浅谈Java 继承接口同名函数问题

    在Java中如果一个类同时继承接口A与B,并且这两个接口中具有同名方法,会怎么样? 动手做实验: interface A{ void fun(); } interface B{ void fun(); ...

最新文章

  1. 大型DCI网络智能运营实践
  2. python递归查找_Python程序使用递归查找数字的幂
  3. Redis的超时命令和垃圾回收策略
  4. 室内定位程序_基于增强现实的室内导航系统如何设计架构
  5. Part4:Citrix 3D 技术Step by Step配置指导手册
  6. sql视图查询对象无效_SQL数据分析 - 4 复杂查询
  7. contenteditable属性让div也可以当做输入框
  8. VB在菜单上增加图标
  9. springboot项目执行controller方法时进入慢的问题
  10. mysql操作SQL语句
  11. Javascript加号的作用、数据类型、输入用户的输入第四课
  12. phpMyAdmin源码配置过程
  13. 快递鸟电子面单对接文档(顺丰、ESM、圆通通用)
  14. 【智能无线小车系列九】在树莓派上使用USB摄像头
  15. HyperX Alloy Mars2游戏机械键盘,深耕专业电竞机游戏械键盘
  16. 网络直播平台近些年发展
  17. python的turtle怎么画曲线_利用 turtle库绘制简单图形
  18. 微信编辑器自带阅读鼓励金,让阅读更有意思!
  19. Debian11.5 最小化安装后更改主机名、安装桌面、设置默认语言、时区、静态IP、局域网DNS等
  20. 【设计模式学习】工厂方法模式

热门文章

  1. 云上自动化 vs 云上编排
  2. python回到初始位置_python之基础
  3. linux系统时间和硬件时间的修改,Linux修改日期、时间,系统与硬件时间
  4. UGUI——基本组件
  5. 本地远程连接阿里云Windows服务器并上传文件的方法
  6. 天不知道地知道你不知道我知道谜底_冷门还免费!宝鸡这几个小众红叶观赏地,资深老司机都不一定知道...
  7. python项目计划_2017年vn.py项目计划
  8. 应用优化前心路历程~
  9. java content-length_为什么Content-Length HTTP头字段使用的值不是Java代码中给出的值?...
  10. vue极致打包_vue 各种打包坑