首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

hadoop_rpc之RPC(四)

2012-07-04 
hadoop_rpc之RPC(4)有了Client,有了Server,那整个过程怎么运行起来?先说一下基本原理:1. 首先客户端和服务

hadoop_rpc之RPC(4)
有了Client,有了Server,那整个过程怎么运行起来?
先说一下基本原理:
1. 首先客户端和服务器端之间要有一个协议,这里的协议就是以java接口类的方式暴露出来的2. 虽然Client类和Server类之间已经具有通信的能力,也有了协议,那么一个真正的客户端要调用服务器端rpc调用的实现,只需要解决参数及具体的调用实现两个问题即可3. 客户端要做的,就是要将参数(这个一般称为存根)通过网络传递到服务器端。这个自然而然想到使用代理模式,因为Client已经具备网络通信的能力,只要通过代理,实现获取参数进行传输即可,为什么不在Client这里实现参数的获取,如果这样的话,就违反了单一职责的原则,且扩展性不行,总不能一个客户端的调用实现一个特定的Client类吧。因此,将Client的功能单一独立出来,只负责将参数通过网络传递到服务器端4. 服务器要做的工作,只需要进行调用的真正的实现即可,当然了, 最后需要能够返回正确的结果。

上面说的这些,都全部在hadoop的这个RPC里进行了实现。
客户端的主要代理实现方法如下:
 



服务器端真正的实现,也在RpcEngine的一个具体实现里:

一个简单的例子:
客户端和服务器端的协议及实现:

热点排行