java进程间通信rpc_进程间通信-浅谈RPC- 最小原型
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- 最小原型相关推荐
- 浅谈javascript中原型(prototype)、构造函数、对象实例及三者之间的关系
转自:http://www.cnblogs.com/zhangwei412827/archive/2012/12/14/2816263.html 浅谈javascript中原型(prototype). ...
- java的byte php_java_浅谈java的byte数组的不同写法,(由于篇幅原因阐述的不够详 - phpStudy...
浅谈java的byte数组的不同写法 (由于篇幅原因阐述的不够详细科学,不喜勿喷). 经常看到java中对byte数组的不同定义,粗略整理的一下: 一个字节(byte)=8位(bit),"b ...
- java对象头_浅谈java对象结构 对象头 Markword
概述 对象实例由对象头.实例数据组成,其中对象头包括markword和类型指针,如果是数组,还包括数组长度; | 类型 | 32位JVM | 64位JVM| | ------ ---- | ----- ...
- java bitset用途_浅谈Java BitSet使用场景和代码示例
搜索热词 @H_502_0@一.什么是BitSet? @H_502_0@ 注:以下内容来自JDK API: @H_502_0@ BitSet类实现了一个按需增长的位向量.位Set的每一个组件都有一个b ...
- java 多线程同步_浅谈Java多线程(状态、同步等)
Java多线程是Java程序员必须掌握的基本的知识点,这块知识点比较复杂,知识点也比较多,今天我们一一来聊下Java多线程,系统的整理下这部分内容. 一.Java中线程创建的三种方式: 1.通过继承T ...
- java list数组排序_浅谈对象数组或list排序及Collections排序原理
常需要对list进行排序,小到List,大到对自定义的类进行排序.不需要自行归并或堆排序.简单实现一个接口即可. 本文先会介绍利用Collections对List进行排序,继而讲到Collection ...
- java虚拟机类加载机制浅谈_浅谈Java虚拟机(三)之类加载机制
在<浅谈Java虚拟机>这篇文章中,我们提到了JVM从操作系统方面来说,可以将其看做是一个进程,分别有类加载器子系统,执行引擎子系统和垃圾收集子系统.这一篇文章就简单的来谈一下类加载器子系 ...
- java缓存同步_浅谈JSON的数据交换、缓存问题和同步问题
JSON轻量级的数据交换格式 相对于XML来说,JSON的解析速度更快,文档更小. JSON的格式 {属性名:属性值,属性名:属性值,--} 属性名的类型可以是string,number,boolea ...
- java手动回收_浅谈java是如何做资源回收补救的
学习java的过程,我们经常谈论一个对象的回收,尤其是资源类型,如果没有显示的关闭,对象就被回收了,说明出现了资源泄漏.java本身为了防止这种情况,做了一些担保的方式,确保可以让未关闭的资源合理回收 ...
- java同名函数_浅谈Java 继承接口同名函数问题
在Java中如果一个类同时继承接口A与B,并且这两个接口中具有同名方法,会怎么样? 动手做实验: interface A{ void fun(); } interface B{ void fun(); ...
最新文章
- 大型DCI网络智能运营实践
- python递归查找_Python程序使用递归查找数字的幂
- Redis的超时命令和垃圾回收策略
- 室内定位程序_基于增强现实的室内导航系统如何设计架构
- Part4:Citrix 3D 技术Step by Step配置指导手册
- sql视图查询对象无效_SQL数据分析 - 4 复杂查询
- contenteditable属性让div也可以当做输入框
- VB在菜单上增加图标
- springboot项目执行controller方法时进入慢的问题
- mysql操作SQL语句
- Javascript加号的作用、数据类型、输入用户的输入第四课
- phpMyAdmin源码配置过程
- 快递鸟电子面单对接文档(顺丰、ESM、圆通通用)
- 【智能无线小车系列九】在树莓派上使用USB摄像头
- HyperX Alloy Mars2游戏机械键盘,深耕专业电竞机游戏械键盘
- 网络直播平台近些年发展
- python的turtle怎么画曲线_利用 turtle库绘制简单图形
- 微信编辑器自带阅读鼓励金,让阅读更有意思!
- Debian11.5 最小化安装后更改主机名、安装桌面、设置默认语言、时区、静态IP、局域网DNS等
- 【设计模式学习】工厂方法模式
热门文章
- 云上自动化 vs 云上编排
- python回到初始位置_python之基础
- linux系统时间和硬件时间的修改,Linux修改日期、时间,系统与硬件时间
- UGUI——基本组件
- 本地远程连接阿里云Windows服务器并上传文件的方法
- 天不知道地知道你不知道我知道谜底_冷门还免费!宝鸡这几个小众红叶观赏地,资深老司机都不一定知道...
- python项目计划_2017年vn.py项目计划
- 应用优化前心路历程~
- java content-length_为什么Content-Length HTTP头字段使用的值不是Java代码中给出的值?...
- vue极致打包_vue 各种打包坑