HDFS如何支持高并发

Posted 架构与英文

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDFS如何支持高并发相关的知识,希望对你有一定的参考价值。

在上一篇《HDFS、YARN核心框架RPC基础模型》文章中,介绍了RPC模型,但没分析如何应用到NameNode的,趁着假期在家有空闲时间,就顺便整理了一下。


我们可以选择从NamNode源代码的startCommonServices函数做为切入点。如图:

从该代码我们看到rpcServer的出现,然后我们继续找到该成员变量的定义处,可以看到其实它是一个NameNodeRpcServer实例:


HDFS如何支持高并发


知道了成员变量的类型,那么我们继续查找NameNodeRpcServer,跳到其构造函数中,

HDFS如何支持高并发这里面定义一个nn变量,从成员变量nn的定义可以知道这是一个namenode的引用,在NaneNoderpcServer 对象构造函数中,将namenode服务和serviceRpcServe.getListenerAddress监听端口关联起来,这样就可以对外提供服务了,但现在还不能确定这就是我们要找的RPC服务,然后我们

再来看下serviceRpcServe的源码定义:

其是一个RPC的内部类Server的实例。继续跟踪代码,到了Server定义处: 

至此,发现该函数继承自ipc.Server,也就找到了关联点,利用ipc.Server的网络IO线程模型,从而得以支持高并发实现。


以上是关于HDFS如何支持高并发的主要内容,如果未能解决你的问题,请参考以下文章

redis单线程如何支持高并发

https大势已来?看腾讯专家如何在高并发压测中支持https

Tornado从入门到进阶 打造支持高并发的技术论坛

单机高并发模型设计

如何实现支持数亿用户的长连消息系统 | Golang高并发案例

单机高并发模型设计