RPC和Proxy
RPC(Remote Procedure Call):远程调用过程,调用代码不在本地执行,实现调用者与被调用者之间的连接和通信。
基于Client Server,相当于DFSClient 相当于客户端。NameNode集群相当与Server。
Proxy:代理,是一种设计模式,提供了对目标对象的另一种访问方式。通过代理对象访问目标对象。
代理分为静态代理和动态代理。
静态代理:接口的定义,实现接口。被代理对象与对象实现相同的接口。
动态代理:接口的定义不需要实现接口(匿名内部类 + 反射invoke)。
HDFS使用的是动态代理
程序示例
依赖
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.7.3</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>2.7.3</version>
</dependency>
<dependency>
<groupId