一、底层依赖:RPC( Remote Procedure Call )
-
一般远程过程调用简单示意
-
RPC是远程过程调用的一种实现,在Hadoop中用于节点间的远程通信(如client<->NameNode, NameNode<->DataNode)
-
实现:动态代理+反射+socket
-
简单使用RPC Demo
(1)Client 和 Server 导入 common 核心jar
(2)Client 和 Server 声明同样的Service接口(绝对路径必须相同),但只在Server一端实现
注:ServiceProtocol即动态代理接口中必须声明versionID以用于版本的双向验证 -
RPC 发布Service( socket-server, 与WebService类似)
Builder->Set…->Server->Start
-
Client 调用Service( socket-client )
二、源码调用
- FileSystem.get();
- fs.open()