【Kafka】编译 Kafka 源码并搭建源码环
作者:石臻臻,CSDN 博客之星 Top5、Kafka Contributor、nacos Contributor、华为云 MVP,腾讯云 TVP,滴滴 Kafka 技术专家、 KnowStreaming。
KnowStreaming 是滴滴开源的Kafka运维管控平台, 有兴趣一起参与参与开发的同学,但是怕自己能力不够的同学,可以联系我,当你导师带你参与开源! 。
搭建源码环境可以看这篇文章:编译 Kafka 源码并搭建源码环境
上面有个地方注意,启动的时候,可以传入 VM 参数来指定 kafka.log.dir 路径(存放各种日志的路径)
在这里插入图片描述
按照上面的方法搭建并成功启动了 Kafka, 那么当我们想要启动集群怎么办呢?
IDEA 同时启动多个 Kafka
配置多个 server.properties, 例如 server1.properties、server2.properties、server3.properties
在这里插入图片描述
修改不同 server.properties 的配置注意以下几个配置不要重复了 ##不同的 idbroker.id=0
##不同的端口 listeners=PLAINTEXT://xxxx:9090
##不同的日志存放路径 log.dirs=k0
创建多个 Application 启动配置
在这里插入图片描述
-Dkafka.logs.dir=运行日志路径 这个也要注意放到不同路径。 这里的
kafka.logs.dir
参数就是 log4j.properties 中的 ${kafka.logs.dir}参数。然后就可以同时启动多个在 IDEA 中的 Broker 了,并且都可以本地调试。
在这里插入图片描述
IDEA 开启 JMX 端口
在这里插入图片描述
注意不要端口冲突了,不同 broker 设置不同的端口。
kafka 中添加日志
你在调试代码的时候,可能想加一点日志观察。
在这里插入图片描述
日志打印到控制台
默认的log4j.properties
文件是没有将日志打印到控制台的,既然我们是调试,那么让日志打印到控制台会更加直观。这个时候改下log4j.properties
配置文件就行
将原来的配置 log4j.logger.kafka=INFO 改成 log4j.logger.kafka=INFO, kafkaAppender,stdout
调试常用脚本命令
可能你想执行 kafka 的一些脚本,并且进行 debug 调试.
那我们可以通过 sh 脚本内容太找到最终是调用了哪个类,比如 增删改查 Topic
在这里插入图片描述
最终调用的类是 kafka.admin.TopicCommand
, 那我们调用这个类的 main 方法就行了。
在这里插入图片描述
当然,这个类的调用需要有入参,在 idea 配置传入就行了。比如,创建一个 3 分区 1 副本的 Topic。
在这里插入图片描述
版权声明: 本文为 InfoQ 作者【石臻臻的杂货铺】的原创文章。
原文链接:【http://xie.infoq.cn/article/776fb358ea5d842237b15c383】。未经作者许可,禁止转载。
评论