Step1:通过命令行中获取配置。赋值给NamesrvConfig和NettyServerConfig类。可见NamesrvConfig和NettyServerConfig是想当紧张的,这两个类分别是NameServer的业务参数和网络参数,我们分别看下这两个类里面有哪些属性:
Step2:根据配置类NamesrvConfig和NettyServerConfig构造一个NamesrvController实例。
注:Apache Commons CLI是开源的命令行解析工具,它可以帮助开辟者快速构建启动命令,并且帮助你组织命令的参数、以及输出列表等。3.3 初始化并启动
Step1:我们分别展开分析这两步。
Broker启动时向集群中全部NameServer发送心跳语句,每隔30秒(默认30s,时间隔断在10秒到60秒之间)再发一次。
Step2:
NameServer收到心跳包更新topicQueueTable,brokerAddrTable,brokerLiveTable,clusterAddrTable,filterServerTable。
Step1:焦点注册逻辑是由RouteInfoManager#registerBroker来实现,焦点代码如下:
解析requestHeader并验签(基于crc32),判定数据是否精确;
Step2:
解析Topic信息;
Step3:
调用RouteInfoManager#registerBroker来进行Broker注册;
NameServer每隔10s扫描BrokerLiveTable,连续120s没收到心跳包,则移除该Broker并关闭socket连接;4.3.2 源码解析
Broer正常关闭时触发路由删除。
欢迎光临 创意电子 (https://wxcydz.cc/) | Powered by Discuz! X3.4 |