HDFSYARN核心框架RPC基础模型
Posted 架构与英文
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDFSYARN核心框架RPC基础模型相关的知识,希望对你有一定的参考价值。
最近处理YARN线上问题时,顺便梳理了下其RPC流程,发现其和HDFS使用的是同一套RPC模型,其逻辑较容易理解。如下图:
HDFS RPC通信模型
1个Listener :负责客户端请求,通过select注册监听accept事件,通过hash选择后端的Reader,并将接受的Request放到Reader的BlockingQueue队列。通过BlockQueue与Reader解耦,防止Reader处于running状态时,更改Select导致线程不安全事件产生。
n个Reader: 负责读取客户端的Rpc请求,并做一些预处理事件,把Rpc请求包装成Call对象,放到Server的CallQueueManager的CallQueue。
n个Handler:在CallQueue阻塞,负责从CallQueue里读取Call,解析出request的函数和参数,通过反射调用对应的RPC函数,处理完成后,注册一个write事件到Responder的select上,并唤醒wait的Responder。
1个Responder:接收Handle的处理结果,并序列化后发到Client。如果一次可以发送无法发送完,则继续注册write事件到自己的select上,等到下次轮训时继续发送。
注意:Listener和Reader线程都有一个Select和一个队列;每个Handler有一个Select,另外所有Handler共用一个队列;Responder只有一个Select()
以上是关于HDFSYARN核心框架RPC基础模型的主要内容,如果未能解决你的问题,请参考以下文章