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

简介: 搭建源码环境可以看这篇文章:编译 Kafka 源码并搭建源码环境上面有个地方注意,启动的时候,可以传入VM参数来指定 kafka.log.dir 路径(存放各种日志的路径)

作者石臻臻, 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。

在这里插入图片描述

目录
相关文章
|
11月前
|
存储 关系型数据库 分布式数据库
PolarDB开源数据库进阶课16 接入PostGIS全功能及应用举例
本文介绍了如何在PolarDB数据库中接入PostGIS插件全功能,实现地理空间数据处理。此外,文章还提供了使用PostGIS生成泰森多边形(Voronoi diagram)的具体示例,帮助用户理解其应用场景及操作方法。
660 1
|
人工智能 JavaScript 前端开发
利用 AI 进行代码生成:GitHub Copilot 的实践与反思
【10月更文挑战第23天】本文探讨了GitHub Copilot,一个由微软和OpenAI合作推出的AI代码生成工具,其核心功能包括智能代码补全、多语言支持、上下文感知和持续学习。文章介绍了Copilot在加速开发流程、学习新语言、提高代码质量和减少重复工作等方面的应用,并反思了AI在代码生成中的代码所有权、安全性和技能发展等问题。最后,文章提供了实施Copilot的最佳实践,强调了在使用AI工具时保持对代码的控制和理解的重要性。
|
资源调度 分布式计算 监控
YARN的基本架构
【6月更文挑战第19天】YARN的基本架构
450 10
|
安全 关系型数据库 MySQL
深入解析MySQL 8中的角色与用户管理
深入解析MySQL 8中的角色与用户管理
831 3
|
存储 数据管理 Linux
Linux命令reposync详解
`reposync`是Linux的命令行工具,用于同步远程YUM仓库到本地,便于离线部署和更新软件。它从远程索引中识别新、改、删包,下载到指定目录,支持配置文件、多参数定制,如`-c`指定配置,`-r`选择仓库,`-p`设定下载路径。`-n`仅同步最新包,`-q`减少输出。最佳实践包括定时同步、验证GPG签名和使用HTTPS。注意网络稳定性、磁盘空间及索引备份。
|
移动开发 开发框架 .NET
TIOBE 6月榜单:Visual Basic排名下滑
【6月更文挑战第21天】### TIOBE 2023年6月编程语言指数:VB跌至第9 Visual Basic在编程语言排名中从第7位降至第9位,反映出市场竞争和技术趋势变化。VB,以其直观设计和易用性成名,面临C#、Web及移动开发语言崛起的挑战。排名下滑源于技术进步、教育偏好的转移及生态系统竞争。VB需适应新技术,如.NET Core,以维持生命力。教育市场和社区支持将是VB未来发展的关键,通过整合现代技术、项目导向学习和在线资源,VB可能在特定领域找到新机遇。
373 6
|
资源调度 分布式计算 Kubernetes
Flink(二)【Flink 部署模式】
Flink(二)【Flink 部署模式】
|
消息中间件 Java Kafka
聊聊 Kafka:编译 Kafka 源码并搭建源码环境
聊聊 Kafka:编译 Kafka 源码并搭建源码环境
1008 0
|
存储 SQL 缓存
MySQL中间件ProxySQL介绍
ProxySQL 是一个高性能的SQL 代理。ProxySQL有一个高级多核体系结构。支持数十万并发连接,可以多路复用到后端服务器上。 作为守护进程运行。而且有一个进程监视这个守护进程,并在守护进程崩溃时重启守护进程,以减少停机时间。这个守护进程接受来自MySQL客户端的请求,并将其转发到后端的MySQL服务器上。 ProxySQL被设计为可以连续运行而且不需要重启。大多数配置可以在运行时使用类似SQL语句的查询完成。
2410 103
MySQL中间件ProxySQL介绍
|
安全 网络安全 网络性能优化
IP中继电话系统
IP中继电话系统
IP中继电话系统