RocketMQ-NameServer啓動流程

簡介

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方法主要是啓動一個線程來監聽配置文件的改變,如果有改變則重新加載文件。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章