Hadoop技术内幕-远程过程调用基础知识
2014-07-02 21:43
246 查看
远程过程调用(Remote Procedure Call,RPC)。
一、RPC原理
简单的说,RPC主是允许程序调用位于其他机器上的过程(也可以是一台机器的不同进程)。当机器A上的进程调用机器B上的进程时,A上的调用进程被挂起,而B上的被调用进程开始执行。调用方使用参数将信息传送给被调用方,然后通过传回的结果得到信息。在这个过程中,A是RPC客户,B是RPC服务器。同时,编程人员看不到任何消息的传递,其行为如果一个过程到别一个过程 的调用一样。
常规过程调用,如下图所示。
RPC跨越不同进行,其调用过程如下图所示。
二、RPC机制的实现
RPC引入客户存根(Client Stub)和服务器骨架(Server Skeleton)。其实现过程一般如下图所示。
上述RPC实现的精彩之处在于:客户方可以简单地忽略不需要关心的内容,客户只要调用一个普通的、本地的过程,就可以访问远程服务,不需要调用send或receive这些底层操作,所有的消息传递细节都隐藏在RPC的库过程中,就如同传统库中隐藏了执行实际系统调用的细节一样。
如果调用接口确定,上述过程的很多组件都 可以自动生成,RPC通过接口定义语言(Interface Definition Language, IDL)描述调用接口的详细信息。IDL文件可以包含类型定义、常量声明、进行参数传递时需要的一些其他信息和注释。
IDL文件编写客户端和服务器代码、编译、连接,就可以得到客户程序和服务器程序。完成一个包含RPC的应用程序的开发。
一、RPC原理
简单的说,RPC主是允许程序调用位于其他机器上的过程(也可以是一台机器的不同进程)。当机器A上的进程调用机器B上的进程时,A上的调用进程被挂起,而B上的被调用进程开始执行。调用方使用参数将信息传送给被调用方,然后通过传回的结果得到信息。在这个过程中,A是RPC客户,B是RPC服务器。同时,编程人员看不到任何消息的传递,其行为如果一个过程到别一个过程 的调用一样。
常规过程调用,如下图所示。
int main(...){ ... func(a1, a2, ..., an); ... } |
int func(p1, p2, ... , pn){ ... } |
二、RPC机制的实现
RPC引入客户存根(Client Stub)和服务器骨架(Server Skeleton)。其实现过程一般如下图所示。
上述RPC实现的精彩之处在于:客户方可以简单地忽略不需要关心的内容,客户只要调用一个普通的、本地的过程,就可以访问远程服务,不需要调用send或receive这些底层操作,所有的消息传递细节都隐藏在RPC的库过程中,就如同传统库中隐藏了执行实际系统调用的细节一样。
如果调用接口确定,上述过程的很多组件都 可以自动生成,RPC通过接口定义语言(Interface Definition Language, IDL)描述调用接口的详细信息。IDL文件可以包含类型定义、常量声明、进行参数传递时需要的一些其他信息和注释。
IDL文件编写客户端和服务器代码、编译、连接,就可以得到客户程序和服务器程序。完成一个包含RPC的应用程序的开发。
相关文章推荐
- Hadoop技术内幕-远程过程调用基础知识
- 染成茜色的坂道破解技术内幕之基础知识
- 《JAVA2核心技术 卷一 基础知识(原书第七版)》《Core java2,Volume I-Fondamentsls Seven Edition》 学习笔记(二)BREAK和CONTINUE的区别
- IPTV技术基础知识
- 视讯技术基础知识介绍——基础篇(二)
- Cisco路由技术基础知识详解之三
- Cisco路由技术基础知识详解之一
- 建立个人网站的基础知识一:技术方面
- 网络工程师基础知识总结-----交换技术!
- 基础知识 初级黑客安全技术命令详解
- COM中的HRESULT, CLISD,ProgID, DLL注册,COM库函数的知识(COM技术内幕笔记之三)
- 网络工程师基础知识总结------网络互连技术
- castle系列之一技术的基础知识
- 《JAVA2核心技术 卷一 基础知识(原书第七版)》《Core java2,Volume I-Fondamentsls Seven Edition》 学习笔记(一)
- VOIP培训资料之基础知识和技术演进篇
- 视讯技术基础知识介绍——基础篇(一)
- Cisco路由技术基础知识详解
- [科普知识]Google封锁南京大屠杀的技术内幕
- 视讯技术基础知识介绍——知识篇(二)
- 网络工程师基础知识总结------ 局域网技术