分布式通信技术之远程调用
远程调用的概念
1.本地调用和远程调用
本地调用: 进程内函数之间的相互调用
远程调用:进程间函数的相互调用,是进程间通信的一种方式
2.远程调用的两个分类
本地过程调用LPC:运行在同一台机器上的进程之间的函数相互调用
远程过程调用RPC: 运行在不同机器上的进程间函数之间的相互调用
3.同步调用和异步调用的区别
远程过程调用RPC存在同步和异步调用
同步调用:调用方等待被调用方执行完成并返回结果
异步调用:调用方调用后不用等待被调用方执行结果返回,并可以通过回调通知等方式获取返回结果
RPC的原理及应用
基本原理
调用方采用参数传递的方式通过调用本机器上的一个函数或方法,去执行远程机器上的函数和方法并返回结果
基本流程
RPC的目的通过把第2到8步的几个过程封装起来,让用户看不到细节。所以RPC的核心是在用户眼里,远程过程调用和调用一次本地服务没什么不同
RPC与本地调用的不同:
1. 调用ID与函数的映射
2. 序列化与反序列化
3. 网络传输协议
应用举例(Apache Dubbo)
基本架构
RMI的原理及应用
基本原理
RMI基于对象,充分利用了面向对象的思想去实现整个过程,其本质就是一种基于对象的RPC实现
基本流程
RMI通过对象作为远程接口来进行远程方法的调用,返回的结果也是对象形式,可以是java对象类型,也可以是基本数据类型。
应用举例(EJB)
RMI与RPC对比
菜鸟程序员,博客只做记录,可能问题很多,有问题,还望不吝指出!转载请附上原文地址,谢谢!