您的位置:首页 > 编程语言 > Java开发

Kafka源码调试环境搭建

2016-07-04 18:34 603 查看

写在前面

用到了kafka, 于是借机会看看代码, 顺便复习下Scala, 看到一半, 换电脑了, 搭环境有搭了半天, 所以记录下. 注意这里是0.8.2.2版本, 因为公司用的就是这个版本.

依赖的软件

Git

ScalaIDE(4.4.1)

Gradle

ZooKeeper

环境搭建

下载源码并切换分支到0.8.2.2版本:

git clone git@github.com:apache/kafka.git
git checkout -b 0.8.2.2 0.8.2.2


安装配置Gradle

下载解压Gradle压缩包, 并配置GRADLE_HOME和PATH, (可以通过GRADLE_USER_HOME指定jar包下载地址)

添加全局配置文件(GRADLE_HOME/init.d/init.gradle), 优先使用本地Maven仓库.

allprojects {
repositories {
mavenLocal()
maven{ url 'your nexus'}
mavenCentral()
}
}


安装ZooKeeper(略)

将Kafka源码转换为eclipse工程

#切换到kafka代码目录
gradle
./gradlew eclipse


将Kafka工程导入到ScalaIDE中.

先导入kafka/clients项目(core项目依赖clients)

再导入kafka/core项目

clients是Java代码不用配置.

core是Scala项目, 因为0.8.2比较老, 所以要设置Scala编译级别为2.10(项目属性->Scala Compiler->勾上Use Project Settings->Scala Installation 选择2.10)

然后clean下, 反正我是挺顺利的~~~

运行源码

启动ZooKeeper

主类在
/core/src/main/scala/kafka/Kafka.scala


修改Kafka.scala文件设置kafka使用的配置文件, 和日志文件配置(通过手动设置main方法参数, 和系统参数来实现)

def main(args: Array[String]): Unit = {
val args = Array("""C:\projects\kafka08\kafka\core\conf\server.properties""")
System.setProperty("log4j.configuration", """file:C:\projects\kafka08\kafka\core\conf\log4j.properties""")
//下面的不修改
}


kafka是通过脚本来停止的, 所以这里debug, 为了避免每次都杀进程, 所以修改下, 这样可以通过控制台回车就可以正常关闭kafka了.

//注释掉awaitShutdown方法调用, 修改为in.read(), 然后调用shutdown
def main(args: Array[String]): Unit = {
kafkaServerStartable.startup
//kafkaServerStartable.awaitShutdown
System.in.read()
kafkaServerStartable.shutdown()
}


好了, 现在可以右键 Run As Scala Application运行了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  kafka scala eclipse debug