Hadoop RPC
RPC简介
简要地说,RPC就是允许程序调用位于其他机器上的过程(也可以是同一台机器的不同进程)。
RPC调用过程是透明的
传统过程调用:传统的过程调用中,主程序将参数压人栈内并调用过程,这时候主程序停止执行并开始执行相应的过程。被调用的过程从栈中获取参数,然后执行过程函数;执行完毕后,将返回参数入栈(或者保存在寄存器里),并将控制权交还给调用方。调用方获取返回参数,并继续执行。
而RPC调用是进程间的过程调用
RPC模型

- 通行模块: 请求-响应
- Stub程序: 用于保证RPC的透明性。在客户端,不在本地调用,而是将请求信息通过网络模块发送给法服务器端,服务器接收后进行解码。服务器中,Stub程序依次进行 解码(请求的参数)、调用相应的服务过程、编码返回结果等处理
- 调度程序: 调度来自通行模块的请求信息,根据其中标识选一个Stub程序运行
- 客户程序: 请求发出者
- 服务过程: 请求接收者