kafka源码学习-源码的结构与环境

242 阅读2分钟

Kafka源码的模块

服务器端源码

服务器端源码:实现 Kafka 架构和各类优秀特性的基础。

Java 客户端源码

Java 客户端源码:定义了与 Broker 端的交互机制,以及通用的 Broker 端组件支撑代码。

Connect 源码

Connect 源码:用于实现 Kafka 与外部系统的高性能数据传输。

Streams 源码

Streams 源码:用于实现实时的流处理功能。

环境配置

Git下载代码

可能遇到的问题

unable to access 'github.com/apache/kafk…': OpenSSL SSL_read: Connection was reset, errno 1005

git config --global http.sslVerify “false”

fatal: unable to access 'github.com/apache/kafk…': Failed to connect to github.com port 443 after 21159 ms: Timed out

clone代码得是>git clone git://github.com/apache/kafka.git 不能是http

github.com[0: 20.205.243.166]: errno=Unknown error

执行git config --global url."https://".insteadOf git://

Gradle构建

需要使用Gradle来进行构建

在Mac或者Linux环境下,可以使用命令 ./gradlew build 进行构建。

Windows环境,gradle.bat build

代码主要目录

bin 目录

bin 目录:保存 Kafka 工具行脚本,我们熟知的 kafka-server-start 和 kafka-console-producer 等脚本都存放在这里。

clients 目录

clients 目录:保存 Kafka 客户端代码,比如生产者和消费者的代码都在该目录下。

config 目录

config 目录:保存 Kafka 的配置文件,其中比较重要的配置文件是 server.properties。

connect 目录

connect 目录:保存 Connect 组件的源代码。Kafka Connect 组件是用来实现 Kafka 与外部系统之间的实时数据传输的。

core 目录

core 目录:保存 Broker 端代码。Kafka 服务器端代码全部保存在该目录下。

streams 目录

streams 目录:保存 Streams 组件的源代码。Kafka Streams 是实现 Kafka 实时流处理的组件。

这是我在极客时间的2月第6天学习,参考文档导读 | 构建Kafka工程和源码阅读环境、Scala语言热身 (geekbang.org)