Kafka 官网:https://kafka.apache.org
Kafka github:https://github.com/apache/kafka

一、下载源码包

1、官网

 

2、Github

 

二、源码结构

  • bin:运行脚本
  • clients:客户端(新版本的生产者和消费者)
  • config:配置文件
  • connect:Kafka 连接器组件
  • core:Kafka 核心组件
  • examples:客户端案例
  • streams:Kafka 流处理库
  • tools:工具类

 

三、环境准备

  • Kafka 源码使用 Gradle 管理,在根目录下使用 gradle idea 命令生成项目,并导入 IDEA 中

  • 需要使用对应的 gradle 版本,否则会报错,0.10.1.0 是 gradle-3.0

 

在 kafka.core.src.main 下面创建 resources 资源目录,添加 log4j.properties 日志配置以查看相关日志

可以参考其他模块的 log 配置

log4j.rootLogger=INFO, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d] %p %m (%c:%L)%n

log4j.logger.kafka=INFO
log4j.logger.org.apache.kafka=ERROR

# zkclient can be verbose, during debugging it is common to adjust is separately
log4j.logger.org.I0Itec.zkclient.ZkClient=WARN
log4j.logger.org.apache.zookeeper=WARN

  • 运行 core.src.main.scala.kafka.Kafka

  • 需要配置启动参数 config/server.properties

 

  • 查看日志可以看到 Kafka config、ZK 连接、logs 加载、启动一些后台工作线程(如:log cleanup、log flusher、网络服务端、选举控制器、启动消费组协调者等)
  • 最后输出 [Kafka Server 0] 表示 Kafka 在本机开发环境中启动成功