HDFSYARN核心框架RPC基础模型

Posted 架构与英文

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDFSYARN核心框架RPC基础模型相关的知识,希望对你有一定的参考价值。

最近处理YARN线上问题时,顺便梳理了下其RPC流程,发现其和HDFS使用的是同一套RPC模型,其逻辑较容易理解。如下图:


                                       HDFS RPC通信模型


1Listener :负责客户端请求,通过select注册监听accept事件,通过hash选择后端的Reader,并将接受的Request放到ReaderBlockingQueue队列。通过BlockQueueReader解耦,防止Reader处于running状态时,更改Select导致线程不安全事件产生。

 

nReader 负责读取客户端的Rpc请求,并做一些预处理事件,把Rpc请求包装成Call对象,放到ServerCallQueueManagerCallQueue

 

nHandler:在CallQueue阻塞,负责从CallQueue里读取Call,解析出request的函数和参数,通过反射调用对应的RPC函数,处理完成后,注册一个write事件到Responderselect上,并唤醒waitResponder

 

1Responder:接收Handle的处理结果,并序列化后发到Client。如果一次可以发送无法发送完,则继续注册write事件到自己的select上,等到下次轮训时继续发送。

 

注意:ListenerReader线程都有一个Select和一个队列;每个Handler有一个Select,另外所有Handler共用一个队列;Responder只有一个Select()


以上是关于HDFSYARN核心框架RPC基础模型的主要内容,如果未能解决你的问题,请参考以下文章

性能基础之常见RPC框架浅析

HDFS如何支持高并发

聊聊从RPC到服务治理框架

Dubbo3高级特性「框架与服务」RPC调用上下文的介绍(全链路追踪基础)

YARN源码阅读基础模块1:服务(Service)

服务治理框架中的基础配套-RPC(基于TCP)框架