kafka 源码运行环境搭建

时间:2022-09-18 15:27:38
      apache kafka 作为一款高吞吐量,分布式的消息中间件,在越来越多的互联网公司流行起来了,为了更好地熟悉和掌握kafka的运行原理和细节, 可以搭建一套本地可运行的源码环境来熟悉kafka。

1. 源码
    在kafka官方网址, 下载 kafka-0.8.1.1-src.tgz 源码,解压: tar -xzvf kafka-0.8.1.1-src.tgz

2. 依赖环境
     kafka源码使用scala开发,运行环境需要java和scala
     在 http://www.scala-lang.org/download/all.html 页面中选择scala 2.9或者2.10版本,
windows下提供msi安装包,下载直接安装即可。
linux下提供tar包,下载解压后配置
SCALA_HOME=/usr/local/scala/scala-2.10.6
PATH=$PATH:$SCALA_HOME/bin
export SCALA_HOME
export PATH

    kafka项目使用gradle构建,需要在本地配置安装gradle。  gradle下载地址:  http://gradle.org/gradle-download/ ,
下载页面右下侧可以选择版本,这里选择 1.12版本。
    下载后解压,配置系统环境变量:
windows:
GRADLE_HOME=D:\Program Files\apache\gradle-1.12
在path加入 %GRADLE_HOME%\bin

linux:
GRADLE_HOME=/usr/local/gradle/gradle-1.12
PATH=$PATH:$GRADLE_HOME/bin
export GRADLE_HOME
export PATH

验证是否配置安装成功: 
命令行键入: gradle -v
出现gradle版本等信息,表示已配置成功。
kafka 源码运行环境搭建
kafka 源码运行环境搭建

3. 开发工具
    开发工具使用 ScalaIDE, ScalaIDE是基于eclipse的插件,对于经常使用eclipse的开发人员来说使用起来比较顺手。下载地址: http://scala-ide.org/, 当前最新版本:4.2.0
下载好的ScalaIDE内部已经集成好了scala的两个版本jar包, 分别是 2.10.5和2.11.7,编译代码时,直接选择使用集成的就可以了。


4. 源代码导入
    将 kafka-0.8.1.1-src 整个源码放在适当的目录, 切换目录进入kafka-0.8.1.1-src中, 在命令行中执行:gradle eclipse ,
gradle 会执行项目构建, 主要下载拉取源码的依赖jar包,生成项目属性文件 .project和 .classpath文件,下载依赖会耗费一段时间,
当看到 BUILD SUCCESSFUL, 构建过程完成

    启动ScalaIDE, File --> Import , 弹出对话框, 选择 gradle项目类型。
kafka 源码运行环境搭建
kafka 源码运行环境搭建

继续选择下一步, 在项目根目录选择 kafka-0.8.1.1-src 源码目录, 继续下一步
  kafka 源码运行环境搭建
kafka 源码运行环境搭建

上面对话框主要用来设置gradle的版本, 在 Gradle distribution中选择第二项, 位置指向本地已配置的目录。
这一步中,也可以选择 Gradle wrapper 选项, 该选项下会自动下载和项目匹配的gradle版本,有点费时。

继续 下一步, 开始项目源码导入。
导入完成后, 项目视图如下, 有报错的地方, 再来做一些调整。
kafka 源码运行环境搭建
kafka 源码运行环境搭建

core项目是kafka的源代码项目, 在core项目的 Java Build Path 中,指定scala的版本为2.10.5
kafka 源码运行环境搭建
kafka 源码运行环境搭建

在源码 kafka.utils.Annotations_2.8.scala 中加入  import scala.annotation.StaticAnnotation
重新build项目后, core源码编译正常
kafka 源码运行环境搭建
kafka 源码运行环境搭建


5.  配置运行
    
        在  kafka-0.8.1.1的根项目的config目录下,打开 server.properties文件
 修改 zookeeper.connect 属性值,将其改为实际的zookeeper地址。
 修改host.name 属性值,将其改为运行机器的IP地址或hostname。

        配置 src/test/resources 中的 日志文件log4j.properties,
 修改 log4j.rootLogger=debug, stdout, 注释掉 log4j.logger.kafka=ERROR

      在core项目中的 Run Configrations中配置运行属性
kafka 源码运行环境搭建kafka 源码运行环境搭建
kafka 源码运行环境搭建
kafka 源码运行环境搭建

    kafka运行依赖zookeeper,启动zookeeper。 就绪后, 运行kafka-core
kafka 源码运行环境搭建
kafka 源码运行环境搭建

kafka已成功运行起来了,可以调试和分析代码了