简介
NameServer是整个RocketMQ的“大脑”,提供动态路由发现
与剔除机制
。其启动过程中最核心的就是:开启Netty的服务端
,并注册请求处理器来处理Broker连上后的请求;开启定时任务
,每隔10s扫描一次Broker,移除处于不激活状态的Broker。
时序图
NameServer启动过程描述如下:
- 解析配置文件,填充NameServerConfig、NettyServerConfig属性值,并且根据启动属性创建NameSrvController;
- 调用NameSrvController的initialize方法,完成DefaultRequestProcessor的注册,用于处理Broker连接请求,启动定时任务,定时任务中调用routeInfoManager的scanNotActiveBroker方法,每隔10s扫描一次Broker,移除处于不激活状态的Broker,初始化一个文件监听器,用于监听配置文件的改变;
- 调用NameSrvController的start方法,内部分别调用了remotingServer的start方法和fileWatchService的start方法。其中remotingServer的start方法主要用于开启Netty server端,等待Broker的连接,如果Broker连接上后,最终便会调用注册的DefaultRequestProcessor的processRequest方法来处理连接请求;fileWatchService的start方法主要是启动一个线程来监听配置文件的改变,如果有改变则重新加载文件。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。