Hadoop远程过程调用

远程过程调用(Remote Procedure Call, RPC)由1984年引入分布式计算领域,是解决分布式系统访问透明性的精妙方案。远程过程调用让用户可以像调用本地方法一样调用另外一个应用程序提供的服务,而不必设计和开发相关的信息发送、处理和接收等具体代码,提高了程序的互操作性。Hadoop IPC(Inter-Process Communication,进程间通信)属于RPC的一种比较简单的实现。


RPC原理

简单地说,RPC就是允许程序调用位于其他机器上的过程(也可以是同一台机器的不同进程)。当机器A上的进程调用机器B上的进程时,A上的调用进程被挂起,而B上的被调用进程开始执行。调用方使用参数将信息传送给被调用方,然后通过传回的结果得到信息。在这个过程中,A是RPC客户,B是RPC服务器。同时,编程人员看不到任何消息的传递,其行为如同一个过程到另一个过程的调用一样。

传统的过程调用中,主程序将参数压入栈内并调用过程,这时候主程序停止执行并开始执行相应的过程。被调用的过程从栈中获取参数,然后执行过程函数:执行完毕后,将返回参数入栈(或保存在寄存器里),并将控制权交还给调用方。调用方获取返回参数,并继续执行。

Client需要调用一个远程过程的时候,将参数打包成为一个消息,并附加被调用的名字(指明要调用服务器上的哪一个过程),然后发送消息到服务器。Client发送完消息以后,必须等待服务器的应答,这个时候,执行流是空闲的。

Server运行时会阻塞在接收消息的调用上,当接到客户端的请求后,它会解包以获取请求参数,这类似传统过程调用中,被调用函数从栈中接收参数,然后确定调用过程的名字并调用相应过程。调用结束后,返回值通过主程序打包并发送回客户端,通知客户端调用结束。


RPC机制的实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值