源码系列第1弹 | 带你快速攻略Kafka源码之旅入门篇(1)

简介: 源码系列第1弹 | 带你快速攻略Kafka源码之旅入门篇

从今天开始我将为大家奉上 Kafka 源码剖析系列文章,正式开启 Kafka的源码之旅」,跟我一起来掌握 Kafka 源码核心架构设计思想吧

今天这篇我们先来聊聊 Kafka 源码环境搭建、源码全景图以及后续源码剖析之旅路线,带你梳理整体的源码分析脉络。

认真读完这篇文章,并准备一台电脑跟我一起操作,我相信你会对 Kafka 源码环境搭建以及全景图剖析以及源码剖析整体路线,有更加深刻的理解。

这篇文章干货很多,希望你可以耐心读完。

01 总体概述

平常我们在基于 Kafka 做应用开发的时候,可能只是将 Kafka 作为一个消息系统来存取消息、抗高并发以及解耦系统,并不会接触到源码层面的知识。但是大家在使用或者运维 Kafka 时或多或少会遇到一些棘手的生产故障问题,如果你不了解 Kafka 源码层面的实现原理,那么在实际开发中排查问题故障点肯定会受到阻碍。因此解决问题的最好办法就是学习和阅读源码,这样我们可以快速掌握 Kafka 的核心实现细节」,来帮助我们更深刻的理解 Kafka 内部设计原理,通晓高吞吐、高可用、高并发系统架构如何设计的,另外可以帮助我们快速建立性能分析、故障问题的排查定位思路和解决问题的高效方法和调优方案,减少解决问题的时间成本

02 Kafka 源码环境搭建

版本说明

在阅读 Kafka 源码之前,首先我们要做一些环境准备工作, Kafka 官方已经更新到 3.1.0版本,但是从 2.8.0 版本开始就去掉了 ZooKeeper 的依赖,生产环境使用不太稳定,因此这里我们将选用2.7.0版本作为源码研究的版本,后续都会以该版本来剖析源码。

环境准备


1)Kafka版本:这里我们选用2.7.0版本。

2)JDK版本:这里我们选用1.8版本,自行安装

3)Scala版本:由于Kafka Broker 端源码是基于Scala写的,这里我们选用2.12版本, 2.13 版本刚推出不久, 暂不适合。

4Gradle版本:这里我们选用6.6版本,使用此来安装 kafka 源码环境。

5)Zookeeper版本:这里我们选用最新版3.6.3版本。

环境搭建

01


Scala 环境搭建


https://www.scala-lang.org/download/2.12.8.html

https://docs.scala-lang.org/zh-cn/tutorials/scala-for-java-programmers.html

https://www.runoob.com/scala/scala-tutorial.html



下载并解压如下:


wget https://downloads.lightbend.com/scala/2.12.8/scala-2.12.8.tgz



开始配置 Scala 环境变量(以Ubuntu系统为例):


sudo vim /etc/profile


# 配置scala安装路径及环境变量

SCALA_HOME=/home/wangjianghua/src/scala-2.12.8

export SCALA_HOME

export PATH=$PATH:$SCALA_HOME/bin


# 使其生效

source /etc/profile


# 验证scala环境是否生效

scala -version


出现下面提示,说明scala环境搭建成功:




02


Gradle 环境搭建


https://services.gradle.org/distributions/



安装包说明:

gradle-x.x-bin.zip: 安装发布版


gradle-x.x-src.zip: 源码版


gradle-x.x-all.zip: 全部文件版



目录
打赏
0
0
0
0
367
分享
相关文章
Kafka【付诸实践 01】生产者发送消息的过程描述及设计+创建生产者并发送消息(同步、异步)+自定义分区器+自定义序列化器+生产者其他属性说明(实例源码粘贴可用)【一篇学会使用Kafka生产者】
【2月更文挑战第21天】Kafka【付诸实践 01】生产者发送消息的过程描述及设计+创建生产者并发送消息(同步、异步)+自定义分区器+自定义序列化器+生产者其他属性说明(实例源码粘贴可用)【一篇学会使用Kafka生产者】
523 4
SparkStreaming(SparkStreaming概述、入门、Kafka数据源、DStream转换、输出、关闭)
SparkStreaming(SparkStreaming概述、入门、Kafka数据源、DStream转换、输出、关闭)(一)
125 5
Kafka【环境搭建 01】kafka_2.12-2.6.0 单机版安装+参数配置及说明+添加到service服务+开机启动配置+验证+chkconfig配置说明(一篇入门kafka)
【2月更文挑战第19天】Kafka【环境搭建 01】kafka_2.12-2.6.0 单机版安装+参数配置及说明+添加到service服务+开机启动配置+验证+chkconfig配置说明(一篇入门kafka)
414 1
Kafka【基础入门】
Kafka【基础入门】
86 1
【深入浅出 RocketMQ原理及实战】「底层源码挖掘系列」透彻剖析贯穿一下RocketMQ和Kafka索引设计原理和方案
【深入浅出 RocketMQ原理及实战】「底层源码挖掘系列」透彻剖析贯穿一下RocketMQ和Kafka索引设计原理和方案
173 1
Kafka【付诸实践 02】消费者和消费者群组+创建消费者实例+提交偏移量(自动、手动)+监听分区再平衡+独立的消费者+消费者其他属性说明(实例源码粘贴可用)【一篇学会使用Kafka消费者】
【2月更文挑战第21天】Kafka【付诸实践 02】消费者和消费者群组+创建消费者实例+提交偏移量(自动、手动)+监听分区再平衡+独立的消费者+消费者其他属性说明(实例源码粘贴可用)【一篇学会使用Kafka消费者】
277 3
[AIGC ~ coze] Kafka 消费者——从源码角度深入理解
[AIGC ~ coze] Kafka 消费者——从源码角度深入理解
111 0
Apache Kafka-初体验Kafka(01)-入门整体认识kafka
Apache Kafka-初体验Kafka(01)-入门整体认识kafka
101 0
kafka源码解析——第一篇:producer
kafka源码解析——第一篇:producer
115 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等