导读 构建 Kafka 工程和源码阅读环境 - 图1

    • controller 包:保存了 Kafka 控制器(Controller)代码,而控制器组件是 Kafka 的核心组件,后面我们会针对这个包的代码进行详细分析。
    • coordinator 包:保存了消费者端的 GroupCoordinator 代码和用于事务的TransactionCoordinator 代码。对 coordinator 包进行分析,特别是对消费者端的GroupCoordinator 代码进行分析,是我们弄明白 Broker 端协调者组件设计原理的关键。
    • log 包:保存了 Kafka 最核心的日志结构代码,包括日志、日志段、索引文件等,专栏后面会有详细介绍。另外,该包下还封装了 Log Compaction 的实现机制,是非常重要的源码包。
    • network 包:封装了 Kafka 服务器端网络层的代码,特别是 SocketServer.scala 这个文件,是 Kafka 实现 Acceptor 模式的具体操作类,非常值得一读。
    • server 包:顾名思义,它是 Kafka 的服务器端主代码,里面的类非常多,很多关键的Kafka 组件都存放在这里,比如专栏后面要讲到的状态机、Purgatory 延时机制等。

    image.png