RocketMQ 學習筆記03-NameServer 啓動流程分析

NameServer 啓動類:NamesrvStartup編程

1.解析配置文件,填充屬性

核心代碼

分析

  • 1.解析配置文件把指定的配置文件或啓動命令中的選型值填充到namesrvConfig、nettyServerConfig 對象,參數來源有如下兩種形式:
    • -c configFile 經過-c 命令指定配置文件路徑
    • 使用"-- 屬性名 屬性值" 例如 --listenPort 9876
  • 2.啓動NameServer 時,能夠使用./mqnameserver -c configfile -p 打印當前配置信息

NamesrvConfig 重要屬性

NettyServerConfig 重要屬性

2.建立、初始化NamesrvController實例

  • 加載KV 配置,建立NettyServer 網絡處理對象,而後開始兩個定時任務,在RocketMQ 中此類定時任務統稱爲心跳機制。
    • 定時任務1:NameServer 沒隔10s 掃描一次Broker,移除處於不激活狀態的Broker.
    • 定時任務2:NameServer 每隔10分鐘,打印一次KV 配置

3.註冊JVM 鉤子函數並啓動服務器,以便監聽Broker、消息生產者的網絡請求。

這段代碼爲咱們提供了一種編程技巧,若是代碼中使用了線程池,一種優雅停機的方式就是註冊一個JVM 鉤子函數,在JVM 進程關閉以前,先將線程池關閉,及時釋放資源。

總結

相關文章
相關標籤/搜索