rpc的学习
rpc(Remote process call 即远程过程调用)是一种请求-相应的协议, 主要使用于C/S架构中,使得分布式系统成为可能。由客户端发起请求,服务端调用各种参数处理请求,当服务器在处理请求时,客户端处于阻塞状态,除非发起一个异步请求。
rpc的理论开始于1970年代,而具体的实现要开始于1980年代早期,随着面向对象编程的兴起,RMI广泛地被实现,尤其是CORBA和Java RMI。而2000年后,RMI们也随着互联网的兴起而逐渐衰落。
rpc的劣势在于由于网络的不稳定性,远程调用可能出错。客户端需要处理许多可能的错误。rpc也不是一个标准,仅仅是一个idea。
我使用的语言主要是Java,在Java中,RPC是基于面向对象技术的。Java也有RMI,因为使用面向对象语言,所以是面向对象的,可以把对象发送到网络中。关于rpc和rmi的区别可以看这篇 http://stackoverflow.com/questions/2728495/what-is-the-difference-between-java-rmi-and-rpc
而详细的介绍在这边 https://www.cs.rutgers.edu/~pxk/416/notes/15-rpc.html
RPC的过程:
- 客户端调用stub,通常是调用本地方法,把参数放入stub中
- stub把参数打包进一个信息,并发起一个call来发送信息,打包参数的过程叫做marshalling
- 客户端本地的操作系统 通过system call 把信息发送到服务器
- 服务器本地的操作系统把数据包发送至服务器stub
- 服务器stub解包
- 服务器调用过程,而返回值以相反的路径传回客户端
而RESTful风格是一种替代。
rpc的学习的更多相关文章
- 微软RPC技术学习小结
RPC,即Remote Procedure Call,远程过程调用,是进程间通信(IPC, Inter Process Communication)技术的一种.由于这项技术在自己所在项目(Window ...
- 简易RPC框架-学习使用
*:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...
- RPC框架学习+小Demo实例
一.什么是RPC协议? 全称:远程过程调度协议 效果:使消费者向调用本地方法一样调用远程服务方法,对使用者透明 目前常用:Dubbo.Thirft.Sofa.... 功能: 建立远程通信(socket ...
- RPC的学习 & gprotobuf 和 thrift的比较
参考 http://blog.csdn.net/pi9nc/article/details/17336663 集成libevent,google protobuf的RPC框架 RPC(Remote P ...
- RPC框架学习总结
1.RPC是一种技术框架的称呼,不是某种具体协议,不局限于某种协议,RPC顾名思义就是远程过程调用,其核心思想是,RPC客户端调用远程服务器上的接口完成过程调用,远程服务器把结果返回. 2.RPC的最 ...
- Spring RPC 入门学习(1)-HelloWorld入门
Spring搭建RPC环境 第一,下载所需要的jar包,下载地址:https://yunpan.cn/cPErQeANrSMyB (提取码:63e5),见下图: 第二,新建动态WebProject,把 ...
- Spring RPC 入门学习(3)-插入Student对象
Spring RPC 向后台传递对象 1. 新建RPC接口:StudentInterface.java package com.cvicse.ump.rpc.interfaceDefine; impo ...
- Spring RPC 入门学习(3)-获取Student对象
Spring RPC传递对象. 1. 新建RPC接口:StudentInterface.java package com.cvicse.ump.rpc.interfaceDefine; import ...
- Spring RPC 入门学习(2)-获取Map对象
Spring RPC传递Map用例编写 1. 新建RPC接口类 package com.cvicse.ump.rpc.interfaceDefine; import java.util.Map; pu ...
随机推荐
- hosts文件简析
什么是hosts文件 hosts文件是个什么文件呢?Hosts虽然没有后缀名,其实是个纯文本文件,可以用记事本等文本编辑软件打开.Hosts文件主要用于在本地电脑强制解析域名,Hosts文件里包含映射 ...
- php用百度地图API进行IP定位和GPS定位
<?php /** * 根据地理坐标获取国家.省份.城市,及周边数据类(利用百度Geocoding API实现) * 百度密钥获取方法:http://lbsyun.baidu.com/apico ...
- Oracle操作数据库oracleHelper
1 Oracle OracleHelper //============================================================================ ...
- ExtJS4.2学习(二)——入门基础
1.工程的目录结构: src里放后台的文件,WebRoot里放前台的文件. index.html或者index.jsp等是整个项目的首页,在首页我们要引入ExtJS的CSS样式文件和ExtJS的核心类 ...
- zoj 2071 Technology Trader 最大权闭合子图
传送门 和上一题一样, 也是一个最大权闭合子图.不过建图好麻烦的感觉 写了好久. 源点和原材料连边, 权值为val. 汇点和产品连边, 权值为val. 产品与和它有关系的材料连边, 权值inf. 最 ...
- python网络编程-01
python网络编程 1.socket模块介绍 ①在网络编程中的一个基本组件就是套接字(socket),socket是两个程序之间的“信息通道”. ②套接字包括两个部分:服务器套接字.客户机套接字 ③ ...
- Pro/Engineer wildfire 5.0 野火版系列下载及安装方法
三.PTC Pro/Engineer wildfire 5.0 M030 野火版最新版 DVD 下载(多国语言) 1.野火下载站下载32&64位下载:[32位] http://down.pro ...
- openStack deep dive,Retake Policy
Method of Payment: visa MasterCard American Express Discover
- Juicy Couture_百度百科
Juicy Couture_百度百科 Juicy Couture
- 毕业bg(dfs)
毕业bg Time Limit : 2000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submissi ...