1

简介

NameServer是整个RocketMQ的“大脑”,提供动态路由发现剔除机制。其启动过程中最核心的就是:开启Netty的服务端,并注册请求处理器来处理Broker连上后的请求;开启定时任务,每隔10s扫描一次Broker,移除处于不激活状态的Broker。

时序图

NameServer启动.jpg

NameServer启动过程描述如下:

  1. 解析配置文件,填充NameServerConfig、NettyServerConfig属性值,并且根据启动属性创建NameSrvController;
  2. 调用NameSrvController的initialize方法,完成DefaultRequestProcessor的注册,用于处理Broker连接请求,启动定时任务,定时任务中调用routeInfoManager的scanNotActiveBroker方法,每隔10s扫描一次Broker,移除处于不激活状态的Broker,初始化一个文件监听器,用于监听配置文件的改变;
  3. 调用NameSrvController的start方法,内部分别调用了remotingServer的start方法和fileWatchService的start方法。其中remotingServer的start方法主要用于开启Netty server端,等待Broker的连接,如果Broker连接上后,最终便会调用注册的DefaultRequestProcessor的processRequest方法来处理连接请求;fileWatchService的start方法主要是启动一个线程来监听配置文件的改变,如果有改变则重新加载文件。

bugDesigner
22 声望3 粉丝