编译 Kafka 源码并搭建源码环境
kafka管控推荐使用 滴滴开源 的 Kafka运维管控平台 更符合国人的操作习惯 ,
更强大的管控能力 ,更高效的问题定位能力 、更便捷的集群运维能力 、更专业的资源治理 、 更友好的运维生态
搭建源码环境可以看这篇文章:
编译 Kafka 源码并搭建源码环境
上面有个地方注意,启动的时候,可以传入VM参数来指定 kafka.log.dir 路径(存放各种日志的路径)
1 | -Dkafka.logs.dir=/Users/shirenchuang/work/IdeaPj/open_source/kafka/logs |
按照上面的方法搭建并成功启动了Kafka, 那么当我们想要启动集群怎么办呢?
IDEA同时启动多个Kafka
配置多个server.properties, 例如server1.properties、server2.properties、server3.properties
修改不同server.properties的配置
注意以下几个配置不要重复了
##不同的id
broker.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端口
1 | -Djava.rmi.server.hostname=127.0.0.1 |
注意不要端口冲突了,不同broker设置不同的端口。
kafka中添加日志
你在调试代码的时候,可能想加一点日志观察。
1 | info(s"打一个启动日志..集群id = $clusterId") |
日志打印到控制台
默认的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。
作者石臻臻,工作8年的互联网老兵,丰富的开发和管理经验,全网「 粉丝数4万 」,
先后从事 「 电商 」、「 中间件 」、「 大数据」 等工作
现在任职于「 滴滴技术专家 」岗位,从事开源建设工作
目前在维护 个人公众号「 石臻臻的杂货铺 」 ; 关注公众号会有「 日常送书活动 」;
欢迎进「 高质量 」 「 滴滴开源技术答疑群 」 , 群内每周技术专家轮流值班答疑
可帮忙「 内推 」一二线大厂