温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Hadoop RPC反射机制怎么理解

发布时间:2021-12-09 15:18:02 来源:亿速云 阅读:164 作者:iii 栏目:云计算

这篇文章主要讲解了“Hadoop RPC反射机制怎么理解”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Hadoop RPC反射机制怎么理解”吧!

有了Client 和Server,很自然就能RPC 啦。下面轮到RPC.java 啦。
一般来说,分布式对象一般都会要求根据接口生成存根和框架。如CORBA,可以通过IDL,生成存根和框架。但是,在
org.apache.hadoop.rpc,我们就不需要这样的步骤了。上类图。
Hadoop RPC反射机制怎么理解 

为了分析Invoker,我们需要介绍一些Java 反射实现Dynamic Proxy 的背景。
Dynamic Proxy 是由两个class 实现的:java.lang.reflect.Proxy 和java.lang.reflect.InvocationHandler,后者是一个
接口。所谓Dynamic Proxy 是这样一种class:它是在运行时生成的class,在生成它时你必须提供一组interface 给它,然后
该class 就宣称它实现了这些interface。
这个Dynamic Proxy 其实就是一个典型的Proxy 模式,它不会替你作实质性的工作,在生成它的实例时你必须提供一个handler,
由它接管实际的工作。这个handler,在Hadoop 的RPC 中,就是Invoker 对象。
我们可以简单地理解:就是你可以通过一个接口来生成一个类,这个类上的所有方法调用,都会传递到你生成类时传递的
InvocationHandler 实现中。
在Hadoop 的RPC 中,Invoker 实现了InvocationHandler 的invoke 方法(invoke 方法也是InvocationHandler 的唯一方法)。
Invoker 会把所有跟这次调用相关的调用方法名,参数类型列表,参数列表打包,然后利用前面我们分析过的Client,通过socket
传递到服务器端。就是说,你在proxy 类上的任何调用,都通过Client 发送到远方的服务器上。
Invoker 使用Invocation。Invocation 封装了一个远程调用的所有相关信息,它的主要属性有: methodName,调用方法名,
parameterClasses,调用方法参数的类型列表和parameters,调用方法参数。注意,它实现了Writable 接口,可以串行化。
RPC.Server 实现了org.apache.hadoop.ipc.Server,你可以把一个对象,通过RPC,升级成为一个服务器。服务器接收到的请求(通过Invocation),
解串行化以后,就变成了方法名,方法参数列表和参数列表。利用Java 反射,我们就可以调用对应的对象的方法。调用的结果再通过socket,返
回给客户端,客户端把结果解包后,就可以返回给Dynamic Proxy 的使用者了。

感谢各位的阅读,以上就是“Hadoop RPC反射机制怎么理解”的内容了,经过本文的学习后,相信大家对Hadoop RPC反射机制怎么理解这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI