环境准备
- JDK1.7 or higher(建议使用 JDK 1.8)
软件准备
- scala-2.11.12.zip 下载地址:https://www.scala-lang.org/download/2.11.12.html
- gradle-4.8.1-bin.zip(写本文的时候gradle最新版是4.8.1)
下载地址:https://gradle.org/releases/
下载
binary-only
版即可:
- kafka 源码包(写本文的时候kafka最新版是1.1.0) 下载地址:http://mirror.bit.edu.cn/apache/kafka/1.1.0/kafka-1.1.0-src.tgz
1. scala 安装配置
- 解压
- 配置 SCALA_HOME 到系统环境变量中
- 在系统环境变量 Path 中添加 SCALA_HOME/bin
查看 scala 的版本号:
2. gradle 安装配置
- 解压
- 配置 GRADLE_HOME 到系统环境变量中
- 在系统环境变量 Path 中添加 GRADLE_HOME/bin
查看 gradle 的版本号:
3. 编译 kafka 源码
(1) 解压源码包
解压后的部分目录说明:
目录 | 描述 |
---|---|
bin | Windows 和 Linux 下 Kafka 相关操作的脚本,包括启动和关闭 KafkaServer、创建 topic、分区管理、模拟生产者和消费者基本操作的脚本等 |
clients | Kafka客户端,包括 Kafka Producer 和 KafkaConsumer,Java语言开发 |
config | Kafka运行相关配置文件,如 server.properties 文件 |
connect | 0.9 版本之后新增加的特性,提供了 Kafka 与其他系统整合进行数据导入、导出的统一接口 |
core | Kafka 核心代码,包括消息定义、日志管理、各组件之间通信、安全协议等 |
docs | 官方文档 |
examples | 示例代码 |
streams | 0.10 版本之后新增的特性,Java 语言开发的构建流处理程序的库 |
tools | 工具类,用于查看生产者性能、吞吐量等 |
tests | 系统测试脚本 |
(2) 下载 wrapper 包
进入 kafka 源码根目录下,执行gradle wrapper
命令,下载 wrapper 包:
命令执行成功后,会在 kafka 源码包的 gradle 目录下生成一个 wrapper 目录,其中包括gradle-wrapper.jar
和gradle-wrapper.properties
两个文件:
(3) 编译 kafka 源码
首先把之前下载好的 gradle-4.8.1-bin.zip 放到 C:Users用户名.gradlewrapperdistsgradle-4.8.1-bine8p42vx1m7a3mz9ydmjagn6wn
目录下,注意:e8p42vx1m7a3mz9ydmjagn6wn
这个目录是执行第(2)步时自动生成的,你的目录名不是我这个,总之是一串随机的长长的字符序列
然后在 kafka 源码包根目录下执行gradlew eclipse
命令:
这个过程需要下载依赖的 jar 包,比较耗时
4. Kafka 源码导入 IDEA 中
直接在 IDEA 中 点击 File -> open -> 选择 kafka源码包下的 core 文件夹和 clients 文件夹打开这两个项目即可,其中 core 项目是用 scala 写的,需要在 IDEA 中加入 scala-sdk,clients 项目是用 Java 写的,打开就可以正常阅读。