阅读 95

kafka 源码调试环境搭建以及踩坑记录

前言

闲来无事想搭看看kafka源码,本以为是个非常简单的事情,结果,遇到的坑困扰我一整天

搭建步骤

准备

  • gradle

  • scala

  • jvm(自行安装)

  • kafka 源码包

  • idea(自行安装)

  • zk(自行安装)

gradle

下载地址为:gradle.org/releases/,笔者使用的版本是3.1

配置环境变量

解压之后将路径添加到环境变量中即可,其中GRADLE_HOME/bin的路径添加到环境变量Path中即可,其中$GRADLE_HOME指的是Gradle的根目录。

可以使用gradle -v命令来验证Gradle是否已经配置完成,

image.png

kafka

下载

我推荐先是去下载kafka源码包,因为这样可以确定后序需要安装的scala版本

官网下载

这里我下载的是1.0.0 因为我也是先看的网上的教程去玩的,注意要下载src.tgz 结尾的包,这才是源码

image.png

解压

解压完之后看 gradle.properties

image.png

这是最合适的scala版本,当然了下载的源码包的时候官网也有列出合适的scala 版本

scala

下载地址为:www.scala-lang.org/download/2.…

选择适合自己的安装方式,这里小编用的是安装包解压

image.png

配置环境变量

如Gradle一样,只需要解压并将路径添加到环境变量即可,其中SCALA_HOME/bin的路径添加到环境变量Path即可,其中$SCALA_HOME指的是Scala的根目录。可以使用scala -version命令来验证scala是否已经配置完成,示例如下:

image.png

源码配置

这时候先别急着打开idea,先在源码目录下执行 gradle idea

image.png

等看到构建成功就OK了,这时候导入到idea

配置文件修改

将log4j.properties移到core\main下

image.png

可以在log4j 中配置

kafka.logs.dir=/Users/hans/work_space/java_project/kafka-1.0.0-src/kafka-logs

这里是绝对路径

server.properties 文件配置zk 的地址

zookeeper.connect=localhost:2181 复制代码

启动配置

先启动zk,然后配置idea

image.png

然后就像启动java项目一样,启动按钮一点完事

需要等一会就看到启动成功了

踩坑记录

启动之后控制台无任何日志输出

image.png

就是这个问题困扰我半天

看zk 的日志确实启动成功了,打断点main方法也进来了。

网上都是说把log4j.properties 放到 main 目录下,但是我确定我有,但是日志就是不打印

后来冷静想想和这个错误和java项目一样,也是引用的log4j 的jar包,于是就去网上找log4j 加载配置文件的源码,终于让我找到一个关键的类

org.apache.log4j.LogManager

image.png

然后在kafka 源码项目中打断点就会发现确实找不到,然后执行classLoader.getResource("")

image.png

发现这目录是在builder中

恍然大悟,对哦,我们看的是项目源码目录,运行时候肯定也有个目录,一看果然没有

image.png

虽然我也不知道为啥没有,明明我又构建一次过,算了不管,直接把log4j配置文件拖进去

image.png

这样就OK了

image.png


作者:帆影匆匆ig
链接:https://juejin.cn/post/7026619404263620616


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐