Kafka 源码编译


环境准备

  • JDK1.7 or higher(建议使用 JDK 1.8)

软件准备


1. scala 安装配置

  • 解压
  • 配置 SCALA_HOME 到系统环境变量中
  • 在系统环境变量 Path 中添加 SCALA_HOME/bin

查看 scala 的版本号:

2. gradle 安装配置

  • 解压
  • 配置 GRADLE_HOME 到系统环境变量中
  • 在系统环境变量 Path 中添加 GRADLE_HOME/bin

查看 gradle 的版本号:

3. 编译 kafka 源码

(1) 解压源码包

解压后的部分目录说明:

目录

描述

bin

Windows 和 Linux 下 Kafka 相关操作的脚本,包括启动和关闭 KafkaServer、创建 topic、分区管理、模拟生产者和消费者基本操作的脚本等

clients

Kafka客户端,包括 Kafka Producer 和 KafkaConsumer,Java语言开发

config

Kafka运行相关配置文件,如 server.properties 文件

connect

0.9 版本之后新增加的特性,提供了 Kafka 与其他系统整合进行数据导入、导出的统一接口

core

Kafka 核心代码,包括消息定义、日志管理、各组件之间通信、安全协议等

docs

官方文档

examples

示例代码

streams

0.10 版本之后新增的特性,Java 语言开发的构建流处理程序的库

tools

工具类,用于查看生产者性能、吞吐量等

tests

系统测试脚本

(2) 下载 wrapper 包

进入 kafka 源码根目录下,执行gradle wrapper命令,下载 wrapper 包:

命令执行成功后,会在 kafka 源码包的 gradle 目录下生成一个 wrapper 目录,其中包括gradle-wrapper.jargradle-wrapper.properties两个文件:

(3) 编译 kafka 源码

首先把之前下载好的 gradle-4.8.1-bin.zip 放到 C:\Users\用户名\.gradle\wrapper\dists\gradle-4.8.1-bin\e8p42vx1m7a3mz9ydmjagn6wn目录下,注意:e8p42vx1m7a3mz9ydmjagn6wn这个目录是执行第(2)步时自动生成的,你的目录名不是我这个,总之是一串随机的长长的字符序列

然后在 kafka 源码包根目录下执行gradlew eclipse命令:

这个过程需要下载依赖的 jar 包,比较耗时

4. Kafka 源码导入 IDEA 中

直接在 IDEA 中 点击 File -> open -> 选择 kafka源码包下的 core 文件夹和 clients 文件夹打开这两个项目即可,其中 core 项目是用 scala 写的,需要在 IDEA 中加入 scala-sdk,clients 项目是用 Java 写的,打开就可以正常阅读。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java技术分享

手把手教你用Mysql-Cluster-7.5搭建数据库集群

当你的业务到达一定的当量,肯定需要一定数量的数据库来负载均衡你的数据库请求,我在之前的博客中已经说明了,如何实现负载均衡,但是还有一个问题就是数据同步,因为负载...

5308
来自专栏河湾欢儿的专栏

node初探

741
来自专栏小狼的世界

CentOS中设置系统级代理

proxy=http://username:password@proxy_ip:port/

1422
来自专栏Java技术分享

手把手教你用Mysql-Cluster-7.5搭建数据库集群

当你的业务到达一定的当量,肯定需要一定数量的数据库来负载均衡你的数据库请求,我在之前的博客中已经说明了,如何实现负载均衡,但是还有一个问题就是数据同步,因为负...

2708
来自专栏行者悟空

Redis-3.x集群安装(三主三从)

5393
来自专栏IT可乐

Maven详解(八)------ 继承和聚合

1、继承 需求场景:   有三个 Maven 工程,每个工程都依赖某个 jar 包,比如 Junit,由于 test 范围的依赖不能传递,它必然会分散在每个工...

22010
来自专栏北京马哥教育

Linux基础之软件包管理

概述 在redhat系列的发行版中,采用rpm软件包管理器,rpm原名是Red Hat Package Manager,后来当其他发行版也采用这种软件包管理机制...

3648
来自专栏刺客博客

Linux下使用mkfs快速对磁盘进行分区

1384
来自专栏简单聊聊Spark

大数据在实际生产环境的前期准备

eg:  bigdata-cdh01.test.com. bigdata-cdh02.test.com. bigdata-cdh03.test.com

1413
来自专栏加米谷大数据

加米谷:Kafka Connect如何运行管理

上节讲述了Kafka OffsetMonitor:监控消费者和延迟的队列,本节更详细的介绍如何配置,运行和管理Kafka Connect,有兴趣的请关注我们的公...

4237

扫码关注云+社区

领取腾讯云代金券