新聞中心
這篇文章主要講解了“Hadoop RPC反射機(jī)制怎么理解”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Hadoop RPC反射機(jī)制怎么理解”吧!
我們擁有十多年網(wǎng)頁(yè)設(shè)計(jì)和網(wǎng)站建設(shè)經(jīng)驗(yàn),從網(wǎng)站策劃到網(wǎng)站制作,我們的網(wǎng)頁(yè)設(shè)計(jì)師為您提供的解決方案。為企業(yè)提供成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、微信開(kāi)發(fā)、小程序制作、手機(jī)網(wǎng)站開(kāi)發(fā)、成都h5網(wǎng)站建設(shè)、等業(yè)務(wù)。無(wú)論您有什么樣的網(wǎng)站設(shè)計(jì)或者設(shè)計(jì)方案要求,我們都將富于創(chuàng)造性的提供專(zhuān)業(yè)設(shè)計(jì)服務(wù)并滿足您的需求。
有了Client 和Server,很自然就能RPC 啦。下面輪到RPC.java 啦。
一般來(lái)說(shuō),分布式對(duì)象一般都會(huì)要求根據(jù)接口生成存根和框架。如CORBA,可以通過(guò)IDL,生成存根和框架。但是,在
org.apache.hadoop.rpc,我們就不需要這樣的步驟了。上類(lèi)圖。
為了分析Invoker,我們需要介紹一些Java 反射實(shí)現(xiàn)Dynamic Proxy 的背景。
Dynamic Proxy 是由兩個(gè)class 實(shí)現(xiàn)的:java.lang.reflect.Proxy 和java.lang.reflect.InvocationHandler,后者是一個(gè)
接口。所謂Dynamic Proxy 是這樣一種class:它是在運(yùn)行時(shí)生成的class,在生成它時(shí)你必須提供一組interface 給它,然后
該class 就宣稱(chēng)它實(shí)現(xiàn)了這些interface。
這個(gè)Dynamic Proxy 其實(shí)就是一個(gè)典型的Proxy 模式,它不會(huì)替你作實(shí)質(zhì)性的工作,在生成它的實(shí)例時(shí)你必須提供一個(gè)handler,
由它接管實(shí)際的工作。這個(gè)handler,在Hadoop 的RPC 中,就是Invoker 對(duì)象。
我們可以簡(jiǎn)單地理解:就是你可以通過(guò)一個(gè)接口來(lái)生成一個(gè)類(lèi),這個(gè)類(lèi)上的所有方法調(diào)用,都會(huì)傳遞到你生成類(lèi)時(shí)傳遞的
InvocationHandler 實(shí)現(xiàn)中。
在Hadoop 的RPC 中,Invoker 實(shí)現(xiàn)了InvocationHandler 的invoke 方法(invoke 方法也是InvocationHandler 的唯一方法)。
Invoker 會(huì)把所有跟這次調(diào)用相關(guān)的調(diào)用方法名,參數(shù)類(lèi)型列表,參數(shù)列表打包,然后利用前面我們分析過(guò)的Client,通過(guò)socket
傳遞到服務(wù)器端。就是說(shuō),你在proxy 類(lèi)上的任何調(diào)用,都通過(guò)Client 發(fā)送到遠(yuǎn)方的服務(wù)器上。
Invoker 使用Invocation。Invocation 封裝了一個(gè)遠(yuǎn)程調(diào)用的所有相關(guān)信息,它的主要屬性有: methodName,調(diào)用方法名,
parameterClasses,調(diào)用方法參數(shù)的類(lèi)型列表和parameters,調(diào)用方法參數(shù)。注意,它實(shí)現(xiàn)了Writable 接口,可以串行化。
RPC.Server 實(shí)現(xiàn)了org.apache.hadoop.ipc.Server,你可以把一個(gè)對(duì)象,通過(guò)RPC,升級(jí)成為一個(gè)服務(wù)器。服務(wù)器接收到的請(qǐng)求(通過(guò)Invocation),
解串行化以后,就變成了方法名,方法參數(shù)列表和參數(shù)列表。利用Java 反射,我們就可以調(diào)用對(duì)應(yīng)的對(duì)象的方法。調(diào)用的結(jié)果再通過(guò)socket,返
回給客戶端,客戶端把結(jié)果解包后,就可以返回給Dynamic Proxy 的使用者了。
感謝各位的閱讀,以上就是“Hadoop RPC反射機(jī)制怎么理解”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)Hadoop RPC反射機(jī)制怎么理解這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
當(dāng)前題目:HadoopRPC反射機(jī)制怎么理解
文章源于:http://fisionsoft.com.cn/article/gdigod.html