Hadoop技术内幕-远程过程调用基础知识

来源:互联网 发布:淘宝白酒真假 编辑:程序博客网 时间:2024/05/21 17:27

远程过程调用(Remote Procedure Call,RPC)。

一、RPC原理

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

常规过程调用,如下图所示。int main(...){
...
func(a1, a2, ..., an); 
...
} int func(p1, p2, ... , pn){
...
}

RPC跨越不同进行,其调用过程如下图所示。

二、RPC机制的实现

RPC引入客户存根(Client Stub)和服务器骨架(Server Skeleton)。其实现过程一般如下图所示。

述RPC实现的精彩之处在于:客户方可以简单地忽略不需要关心的内容,客户只要调用一个普通的、本地的过程,就可以访问远程服务,不需要调用send或receive这些底层操作,所有的消息传递细节都隐藏在RPC的库过程中,就如同传统库中隐藏了执行实际系统调用的细节一样。

如果调用接口确定,上述过程的很多组件都 可以自动生成,RPC通过接口定义语言(Interface Definition Language, IDL)描述调用接口的详细信息。IDL文件可以包含类型定义、常量声明、进行参数传递时需要的一些其他信息和注释。

IDL文件编写客户端和服务器代码、编译、连接,就可以得到客户程序和服务器程序。完成一个包含RPC的应用程序的开发。

0 0
原创粉丝点击