关于hadoop 2.6源码中ApplicationClientProtocol的问题 1C

请教大神一个问题
Hadoop 2.6中,Client端提交JOB到RM端,他们是通过ApplicationClientProtocol通信的。
在RM端有RMClientService.java作为服务端接收请求并相应,代码是rpc.getServer(ApplicationClientProtocol.class...),可以看出服务端对应的协议是ApplicationClientProtocol。
在Client端有ApplicationClientProtocolPBClientImpl.java作为客户端提交请求,代码是RPC.getProxy(ApplicationClientProtocolPB.class...),可以看出Client端的协议是ApplicationClientProtocolPB。
而ApplicationClientProtocolPB继承了ApplicationClientProtocolService.BlockingInterface,这是GOOGLE的protoBuf的内容。
这能代表ApplicationClientProtocolPB等同于ApplicationClientProtocol吗?服务端和客户端一个是ApplicationClientProtocolPB.class,一个是ApplicationClientProtocol.class为什么可以正常通信?
为什么不在服务端直接写成rpc.getServer(ApplicationClientProtocolPB.class...)呢?
还有ApplicationClientProtocolPBServiceImpl.java是干什么用的呢?

1个回答

entService.java作为服务端接收请求并相应,代码是rpc.getServer(ApplicationClientProtocol.class...),可以看出服务端对应的协议是ApplicationClientProtocol。
在Client端有ApplicationClientProtocolPBClientImpl.java作为客户端提交请求,代码是RPC.getProxy(ApplicationClientProtocolPB.class...),可以看出Client端的协议是ApplicationClientProtocolPB。
而ApplicationClientProtocolPB继承了ApplicationClientProtocolService.BlockingInterface,这是GOOGLE的protoBuf的内容。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问