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)