我们上一篇文章分析到,NameServer启动的时候,实际上会解析配置文件,然后初始化NamesrvConfig和NettyServerConfig两个核心配置类。然后我们进一步知道NamesrvConfig里其实没什么关键的东西,最主要的还是NettyServerConfig里包含的一些网络通信的参数,他们基本都有自己的默认值。然后基于这两个核心配置类,实际上最后我们在源码里看到,他初步的构建出来了NamesrvController这个核心组件,如下面的代码片段,在createNamesrvController()这个方法中,最终是创建出了这个核心组件的。
而且我们还初步推测了一下,看到Netty相关的字眼,那么NamesrvController内部肯定包含基于Netty实现的网络通信组件了
NamesrvController被创建出来了,Netty服务器就能启动?
我们都知道,你这个NamesrvController被创建之后,我们最关心的其实就是他里面的Netty服务器得启动,这样NameServer才能在默认的9876这个端口上接收Broker和客户端的网络请求,比如Broker注册自己,客户端拉取Broker路由数据等等。那你觉得NamesrvController被创建出来了,然后就万事大吉了?
当然不可能那么简单的,我们看下面的NamesrvControll