通过 kafka-server-start.sh
发现,启动类为 kafka.Kafka
,直接看类代码:
1 | def main(args: Array[String]): Unit = { |
启动为 KafkaServerStartable 对象进行启动,而 KafkaServerStartable 中具体的实现是 KafkaServer对象的启动,具体启动方法是:
1 | /** |
总的来说,在KafkaServer启动流程中,先后启动了以下几个模块:
- kafkaScheduler 调度模块,负责kafka内部的周期性调度和非周期性调度
- 初始化 Zookeeper 工具类
- 实例化 metrics
- quotaManagers 限额管理模块
- logManager 日志管理模块
- socketServer 网络服务模块
- replicaManager 副本管理模块
- kafkaController kafka控制器
- adminManager 暂时不知道具体干嘛的,应该做客户端管理用的
- groupCoordinator 消费组协调器
- apis 和 requestHandlerPool 请求API和请求池
- dynamicConfigManager 动态配置管理