RoctetMQ(二)namesrv启动-创新互联
Topic 路由管理模块:Topic 路由决定 Topic 的分区数据会保存在哪些 Broker 上。这是 Namesrv 最核心的模块,Broker 启动时将自身信息注册到 Namesrv 中,方便生产者和消费者获取。生产者、消费者启动和间隔的心跳时间会获取 Topic 最新路由信息,以此发送或者接收消息。
Remoting 通信模块:是基于 Netty 的一个网络通信封装,整个 RocketMQ 的公共模块在 RocketMQ 各个组件之间担任通信任务。该组件以 Request/Response 的方式通信,比如你想知道你使用的 RocketMQ 支持哪些功能,可以查看 D:\rocketmq-master\common\src\main\java\org\apache\rocketmq\common\protocol\RequestCode.java,一个RequestCode 代表一种功能或者一个接口。
定时任务模块:在 Namesrv 中定时任务并没有独立成一个模块,而是由 D:\rocketmq-master\namesrv\src\main\java\org\apache\rocketmq\namesrv\NamesrvController.java 中initialize()调用的几个定时任务组成的,其中各包括定时扫描宕机的 Broker、定时打印 KV配置、定时扫描超时请求。
KV 管理模块:Namesrv 维护一个全局的 KV 配置模块,方便全局配置。
namesrv启动流程
- 解析配置文件生成namesrv的配置,包括namesrvConfig和nettyServerConfig。
- 根据配置文件生成NamesrvController对象并进入启动流程。
- NamesrvController的初始化中创建NettyRemotingServer、初始化各类线程池、注册Namesrv的processor。
- NamesrvController的启动主要是NamesrvController的启动,核心是启动NettyServer的监听以及各类扫描线程。
- namesrv启动过程中JVM只有当所有的非守护线程都结束时候才会结束
参考文献:RocketMQ namesrv 启动流程解析 - 简书 (jianshu.com)
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
本文名称:RoctetMQ(二)namesrv启动-创新互联
网页链接:http://scyanting.com/article/idpps.html