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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 【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
    在这里插入图片描述
  2. 修改不同server.properties的配置 注意以下几个配置不要重复了
    ##不同的id
    broker.id=0
    ##不同的端口
    listeners=PLAINTEXT://xxxx:9090
    ##不同的日志存放路径
    log.dirs=k0
  3. 创建多个Application 启动配置
    在这里插入图片描述
  4. -Dkafka.logs.dir=运行日志路径  这个也要注意放到不同路径。 这里的kafka.logs.dir参数就是log4j.properties中的${kafka.logs.dir}参数。
  5. 然后就可以同时启动多个在IDEA中的Broker了,并且都可以本地调试。
    在这里插入图片描述

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。

在这里插入图片描述

相关文章
|
2月前
|
消息中间件 存储 负载均衡
Kafka【付诸实践 01】生产者发送消息的过程描述及设计+创建生产者并发送消息(同步、异步)+自定义分区器+自定义序列化器+生产者其他属性说明(实例源码粘贴可用)【一篇学会使用Kafka生产者】
【2月更文挑战第21天】Kafka【付诸实践 01】生产者发送消息的过程描述及设计+创建生产者并发送消息(同步、异步)+自定义分区器+自定义序列化器+生产者其他属性说明(实例源码粘贴可用)【一篇学会使用Kafka生产者】
352 4
|
2月前
|
消息中间件 分布式计算 Kafka
亿万级别Kafka演进之路:可靠性+事务+消息中间件+源码+日志
Kafka起初是由LinkedIn公司采用Scala语言开发的-一个多分区、多副本且基于ZooKeeper协调的分布式消息系统,现已被捐献给Apache基金会。目前Kafka已经定位为一个分布式流式处理平台,它以高吞吐、可持久化、可水平扩展、支持流数据处理等多种特性而被广泛使用。
|
2月前
|
消息中间件 存储 负载均衡
[AIGC ~ coze] Kafka 消费者——从源码角度深入理解
[AIGC ~ coze] Kafka 消费者——从源码角度深入理解
|
2月前
|
消息中间件 存储 Kafka
【深入浅出 RocketMQ原理及实战】「底层源码挖掘系列」透彻剖析贯穿一下RocketMQ和Kafka索引设计原理和方案
【深入浅出 RocketMQ原理及实战】「底层源码挖掘系列」透彻剖析贯穿一下RocketMQ和Kafka索引设计原理和方案
75 1
|
2月前
|
消息中间件 网络协议 Kafka
Kafka【付诸实践 02】消费者和消费者群组+创建消费者实例+提交偏移量(自动、手动)+监听分区再平衡+独立的消费者+消费者其他属性说明(实例源码粘贴可用)【一篇学会使用Kafka消费者】
【2月更文挑战第21天】Kafka【付诸实践 02】消费者和消费者群组+创建消费者实例+提交偏移量(自动、手动)+监听分区再平衡+独立的消费者+消费者其他属性说明(实例源码粘贴可用)【一篇学会使用Kafka消费者】
125 3
|
2月前
|
存储 Java 关系型数据库
【Kafka+Flume+Mysql+Spark】实现新闻话题实时统计分析系统(附源码)
【Kafka+Flume+Mysql+Spark】实现新闻话题实时统计分析系统(附源码)
66 1
【Kafka+Flume+Mysql+Spark】实现新闻话题实时统计分析系统(附源码)
|
2月前
|
消息中间件 Java 关系型数据库
【Spring Boot+Kafka+Mysql+HBase】实现分布式优惠券后台应用系统(附源码)
【Spring Boot+Kafka+Mysql+HBase】实现分布式优惠券后台应用系统(附源码)
154 2
|
2月前
|
消息中间件 缓存 Kafka
kafka源码解析——第一篇:producer
kafka源码解析——第一篇:producer
52 0
|
2月前
|
消息中间件 Java Shell
Linux【脚本 03】shell脚本离线安装配置集结JDK+InfluxDB+Zookeeper+Kafka(安装文件及脚本源码网盘分享)
Linux【脚本 03】shell脚本离线安装配置集结JDK+InfluxDB+Zookeeper+Kafka(安装文件及脚本源码网盘分享)
34 0
|
2月前
|
消息中间件 分布式计算 大数据
【大数据技术】Spark+Flume+Kafka实现商品实时交易数据统计分析实战(附源码)
【大数据技术】Spark+Flume+Kafka实现商品实时交易数据统计分析实战(附源码)
158 0