写点什么

【Kafka】编译 Kafka 源码并搭建源码环

  • 2022 年 9 月 22 日
    江西
  • 本文字数:1047 字

    阅读完需:约 3 分钟

【Kafka】编译 Kafka 源码并搭建源码环

作者石臻臻,CSDN 博客之星 Top5Kafka Contributornacos Contributor华为云 MVP,腾讯云 TVP,滴滴 Kafka 技术专家 KnowStreaming


KnowStreaming 是滴滴开源的Kafka运维管控平台, 有兴趣一起参与参与开发的同学,但是怕自己能力不够的同学,可以联系我,当你导师带你参与开源!

搭建源码环境可以看这篇文章:编译 Kafka 源码并搭建源码环境

上面有个地方注意,启动的时候,可以传入 VM 参数来指定 kafka.log.dir 路径(存放各种日志的路径)

在这里插入图片描述

-Dkafka.logs.dir=/Users/shirenchuang/work/IdeaPj/open_source/kafka/logs
复制代码

按照上面的方法搭建并成功启动了 Kafka, 那么当我们想要启动集群怎么办呢?

IDEA 同时启动多个 Kafka

  1. 配置多个 server.properties, 例如 server1.properties、server2.properties、server3.properties

  1. 在这里插入图片描述

  2. 修改不同 server.properties 的配置注意以下几个配置不要重复了 ##不同的 idbroker.id=0

    ##不同的端口 listeners=PLAINTEXT://xxxx:9090

    ##不同的日志存放路径 log.dirs=k0

  3. 创建多个 Application 启动配置

  1. 在这里插入图片描述

  2. -Dkafka.logs.dir=运行日志路径 这个也要注意放到不同路径。 这里的kafka.logs.dir参数就是 log4j.properties 中的 ${kafka.logs.dir}参数。

  3. 然后就可以同时启动多个在 IDEA 中的 Broker 了,并且都可以本地调试。

  1. 在这里插入图片描述

IDEA 开启 JMX 端口

在这里插入图片描述

-Djava.rmi.server.hostname=127.0.0.1-Dcom.sun.management.jmxremote-Dcom.sun.management.jmxremote.port=9191-Dcom.sun.management.jmxremote.ssl=false-Dcom.sun.management.jmxremote.authenticate=false
复制代码

注意不要端口冲突了,不同 broker 设置不同的端口。

kafka 中添加日志

你在调试代码的时候,可能想加一点日志观察。

   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。

在这里插入图片描述

发布于: 刚刚阅读数: 3
用户头像

关注公众号: 石臻臻的杂货铺 获取最新文章 2019.09.06 加入

进高质量滴滴技术交流群,只交流技术不闲聊 加 szzdzhp001 进群 20w字《Kafka运维与实战宝典》PDF下载请关注公众号:石臻臻的杂货铺

评论

发布
暂无评论
【Kafka】编译 Kafka 源码并搭建源码环_kafka_石臻臻的杂货铺_InfoQ写作社区