RocketMQ5.0 NameServer启动流程
1. NameServer 启动
**org.apache.rocketmq.namesrv.NamesrvStartup **的Main函数是启动的入口。
public static void main(String[] args) {
main0(args);
controllerManagerMain();
}
public static NamesrvController main0(String[] args) {
try {
parseCommandlineAndConfigFile(args);
NamesrvController controller = createAndStartNamesrvController();
return controller;
} catch (Throwable e) {
e.printStackTrace();
System.exit(-1);
}
return null;
}
public static ControllerManager controllerManagerMain() {
try {
if (namesrvConfig.isEnableControllerInNamesrv()) {
return createAndStartControllerManager();
}
} catch (Throwable e) {
e.printStackTrace();
System.exit(-1);
}
return null;
}
启动分成了两块:
- NameServer启动
- Controller启动(5.0为自动自主切换新增的一个模块,内嵌NameServer的时候会启动)
tip
本篇文章只分析NameServer的启动,Controller的启动在后续的文章中进行分析