NameServer是干什么的?
路由注册发现,去中心化,为什么不用zk或者nacos呢?轻量化,简化依赖,方便后面定制扩展
NameServer架构图
核心代码
启动代码入口org.apache.rocketmq.namesrv.NamesrvStartup#main,入口进去主要干了两件事。 1.根据传入的参数和配置文件创建NameServer,NettyServer,NettyClient(5.x以前没有这个用来和其他NameServer通信)配置 2.通过上面的三个配置创建NamesrvController启动NamesrvController(负责处理所有的请求入口MVC设计思想) 启动 remotingServer,remotingClient,routeInfoManager(路由信息处理相当于mvc的service), fileWatchService(监听证书);证书变化后org.apache.rocketmq.namesrv.NamesrvController#initiateSslContext重新load到remotingServer