RocketMQNameServer启动流程

简介

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

时序图

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方法主要是启动一个线程来监听配置文件的改变,如果有改变则重新加载文件。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理