HDFS如何支持高并发
Posted 架构与英文
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDFS如何支持高并发相关的知识,希望对你有一定的参考价值。
在上一篇《HDFS、YARN核心框架RPC基础模型》文章中,介绍了RPC模型,但没分析如何应用到NameNode的,趁着假期在家有空闲时间,就顺便整理了一下。
我们可以选择从NamNode源代码的startCommonServices函数做为切入点。如图:
从该代码我们看到rpcServer的出现,然后我们继续找到该成员变量的定义处,可以看到其实它是一个NameNodeRpcServer实例:
知道了成员变量的类型,那么我们继续查找NameNodeRpcServer,跳到其构造函数中,
这里面定义一个nn变量,从成员变量nn的定义可以知道这是一个namenode实例的引用,在NaneNoderpcServer 对象构造函数中,将namenode服务和serviceRpcServe.getListenerAddress监听端口关联起来,这样就可以对外提供服务了,但现在还不能确定这就是我们要找的RPC服务,然后我们
再来看下serviceRpcServe的源码定义:
其是一个RPC的内部类Server的实例。继续跟踪代码,到了Server定义处:
至此,发现该函数继承自ipc.Server,也就找到了关联点,利用ipc.Server的网络IO线程模型,从而得以支持高并发实现。
以上是关于HDFS如何支持高并发的主要内容,如果未能解决你的问题,请参考以下文章
https大势已来?看腾讯专家如何在高并发压测中支持https