Server类是个抽象,只所以抽象,是具有如下抽象方法:
public abstract Writable call(Class<?> protocol, Writable param, long receiveTime)
throws IOException;
也就是说,服务器端接收到请求后,最后对这个请求的真正处理是通过此方法执行的。又具体的实现类实现这个方法。
回顾前面
http://jimmee.iteye.com/blog/1201398关于nio的reactor模式,hadoop的rpc调用的Server完全按照这个模式来实现
- 1. Listener类,启动一个线程使用一个Selector来处理Channel的Accept;
- 2. Listenter.Reader类,启动多个线程来(当然也可以配置成一个,关键看cpu是怎样的了)处理Channel的读,也就是得到client;
- 3. Handler类,业务线程处理类,这个类处理真正的调用,线程池配置多大,就启动多少个线程,其实我觉得直接使用java.util.concurrent中的线程池更方便;
- 4. Responder类,这个类启动一个线程,使用一个Selector来处理写(这里值得注意的是,并不是每个Channel都添加到Selector里来处理写操作,而是有没有写完的数据时候,才添加进去)
- 5. Call类,可以理解为与Client端的Call对应;
- 6. Connection,代表与Client端的连接,读取客户端的call并放到一个阻塞队列中,Handler负责从这个队列中读取数据并处理
总之按照这个流程去理解server端的代码就ok。
分享到:
相关推荐
Hadoop_RPC详细分析.doc,这是你多关注的
windows 64位下hadoop2.7.3搭建环境所需的hadoop.dll及winutil.exe等
Hadoop_in_Action.pdf
pc机连接hadoop集群必须的文件,把它放到本地,然后配置到环境变量中,才能在本地操作集群。
Hadoop_进行分布式并行编程.doc Hadoop_进行分布式并行编程.doc
细细品味Hadoop_Hadoop集群(第11期副刊)_HBase之旅.pdf
FP把这样的函数称为”higher order function”(”High order function”被成为Function Programming的利器之一哦),也就是说,这些函数是编写来被与其它函数相结合(或者说被其它函数调用的)。如果说硬要比的化,...
hadoop_spark_数据算法hadoop_spark_数据算法hadoop_spark_数据算法hadoop_spark_数据算法
细细品味Hadoop_第16期_ZooKeeper简介及安装_V1.2细细品味Hadoop_第16期_ZooKeeper简介及安装_V1.2
hadoop_介绍
Hadoop_Hadoop集群Hadoop_Hadoop集群Hadoop_Hadoop集群Hadoop_Hadoop集群Hadoop_Hadoop集群Hadoop_Hadoop集群Hadoop_Hadoop集群Hadoop_Hadoop集群Hadoop_Hadoop集群
01_Hadoop_开篇_课程整体介绍.mp4 03_Hadoop_概论_大数据的特点.mp4 04_Hadoop_概论_大数据的应用场景.mp4 06_Hadoop_概论_未来工作内容.mp4 07_Hadoop_入门_课程介绍.mp4 11_Hadoop_入门_Hadoop优势.mp4 13_Hadoop_...
hadoop_dll_winutil_2.7 hadoop 依赖库 hadoop 依赖库
hadoop_dll_winutil_2.7.1
Hadoop 集群配置详解 Hadoop_Hadoop集群(第1期...Hadoop_Hadoop集群(第8期)_HDFS初探之旅 Hadoop_Hadoop集群(第9期)_MapReduce初级案例 Hadoop_Hadoop集群(第10期)_MySQL关系数据库 Web(Json-Lib类库使用手册)
hadoop_tutorial hadoop入门经典 Hadoop 是一个能够对大量数据进行分布式处理的软件框架。Hadoop 是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。...
Hadoop_Spark相关面试问题总结 - Hadoop知识库.pdf Hadoop_Spark相关面试问题总结 - Hadoop知识库.pdf Hadoop_Spark相关面试问题总结 - Hadoop知识库.pdf
Hadoop_MapReduce教程,Hadoop_MapReduce教程
Hadoop_in_Action
Hadoop_HBase_Pig