Kafka 这个组件有个很尴尬的地方:会用的人觉得它就是个消息队列,写两行配置就能收发消息;但一旦线上出现消费积压、副本不同步、重复消费,或者被问到「这个分区为什么选它当 Leader」,很多人就答不上来了。如果你正处在「API 会调、原理说不清」的阶段,这套围绕 Kafka 3.6 版本的视频内容正好对着这个缺口来。

它不讲怎么快速跑一个 Hello World,而是把 broker 内部到底做了什么、消息从生产到落盘再到被消费经历了哪些环节,一段一段拆开。看完之后你应该能回答这类问题:一条消息写进分区之后,到底存在磁盘的什么地方,为什么 Kafka 敢用磁盘还这么快?消费者组里的重平衡是怎么触发的,谁来决定分区给谁?这些不是面试八股,而是你排查故障时真正要用的东西。

这门课到底解决什么问题

大部分人对 Kafka 的认知停留在「生产者发、消费者收」这个层面,中间那层是黑盒。黑盒带来的直接后果就是:出了问题只能重启、扩容、加机器,说不清根因。这门内容的主线就是把这层黑盒打开——从数据的存储流程、文件类型、字节计算方式,到数据定位、日志清理策略,一条链路走下来,你会明白 Kafka 的高吞吐不是玄学,而是顺写日志、页缓存、零拷贝这些机制叠加的结果。

另一个被重点处理的问题是「一致性」。副本同步时的水位线怎么变、ISR 列表何时收缩和扩张、数据同步不一致会带来什么后果,这些内容单独拎出来讲,说明它希望你不只是知道「有副本」,而是理解副本之间是怎么达成一致的。生产端的数据重复和乱序、事务流程,消费端的偏移量提交方式、事务隔离级别,这些也都是实际项目里最容易踩坑的地方,课程把它们放在一起讲,逻辑上是连贯的。

还有一块容易被忽略的是运维和集成视角。集群怎么在 Linux 上从零搭起来,ZooKeeper 模式和 KRaft 模式分别怎么装,监控怎么配,脑裂问题怎么防,这些不是开发日常写代码会碰的,但一旦你要对一套 Kafka 集群负责,就必须过这一关。后面接 Flume、Spark、SpringBoot 的集成,则是把 Kafka 放回真实的数据流和业务系统里,看它在上下游之间扮演什么角色。

适合什么基础的人看

如果你完全没接触过消息队列,直接上这套内容会有点吃力,因为它默认你已经知道「主题」「分区」「生产者」「消费者」这些词大概指什么。比较合适的起点是:你用过 Kafka 发消息、写过一个 consumer 去拉数据,或者至少在项目里见过别人的 Kafka 配置。有这个基础,再去听存储流程和副本同步,才能把新知识和已有印象对上号。

对 Java 后端来说,这套内容的价值在于补上中间件原理这一环。你平时写 SpringBoot 集成、用 KafkaTemplate 发消息,用的是封装好的 API,但消费积压到底是分区不够还是消费逻辑太慢,需要你懂消费者组和分区分配策略才能判断。对大数据方向的人,Flume、Spark 的集成部分直接对应日志采集和流处理场景,理解 Kafka 的存储和消费机制,才能调好并行度和批次参数。

如果你正在准备中间件相关的面试,或者要从其他 MQ 转到 Kafka,这套内容也合适。它把事务、偏移量、重平衡、ISR 这些高频考点放在具体流程里讲,比背结论扎实得多。但要提醒一句:看之前最好手边有一台能折腾的机器,纯看不练,存储和集群那几块很容易左耳进右耳出。

建议先看哪几块,顺序怎么排

不建议从第一个视频顺着往下刷。更高效的做法是先建立整体印象,再往深处钻。开头部分先看软件介绍和文件目录说明,把 Kafka 装完之后目录里各是什么搞清楚,这一步很快,但能让你后面听存储时不至于没有画面感。接着看命令行操作里创建主题、起生产者和消费者这两段,亲手敲一遍,确认环境是通的。

然后进入生产数据和存储数据这两大块,这是整套内容的核心。生产端重点看数据重复、乱序的原因和原理,以及事务流程;存储端按「存储流程—文件类型—文件内容和数据定位—字节计算—日志清理」这个顺序看,中间不要跳,因为后面的副本同步和水位线依赖前面的概念。ISR 列表变化和传播这一段可以多看两遍,它是理解一致性问题的钥匙。

消费数据这块放在存储之后看会更顺,因为偏移量、内部主题、消费者组、分区分配策略这些概念和存储是咬合的。看完分区分配策略的介绍和演示,再回看消费者 Leader 选举,你会对重平衡有完整认识。最后再处理扩展和集成部分:Linux 集群部署建议动手搭一遍,零拷贝、顺写日志、脑裂这些扩展话题当原理补充看,Flume、Spark、SpringBoot 的集成按你自己的工作场景选看,不必全刷。收尾的优化简介和常见问题放在最后,当作查漏补缺的清单。

学完能独立做什么

最直接的一点,你能自己搭起一套可用的 Kafka 环境,不依赖别人的脚本。从虚拟机、Java、ZooKeeper 到 Kafka 本体,再到监控和 KRaft 模式,走完这一套,你对集群的组成和依赖关系会有实感。遇到集群起不来、节点连不上这类问题,你知道从哪一层开始查,而不是盲目重启。

在开发层面,你能判断一个消费积压问题该怎么处理:是分区数不够导致并行度上不去,还是消费者组里有人掉线触发了重平衡,还是消费逻辑本身太慢。你能看懂偏移量提交方式对重复消费的影响,知道同步提交和异步提交各自的代价,也能在需要精确一次语义时用好事务和隔离级别。生产者这边,你能解释消息为什么会重复和乱序,并在配置上做出取舍。

再往上一层,你能把 Kafka 接进真实系统。日志采集用 Flume 落到 Kafka,流处理用 Spark 消费,业务侧用 SpringBoot 集成,这三条线走通之后,你就有能力设计一条从数据产生到被处理的完整链路。同时,零拷贝、顺写日志这些底层机制你也能讲清楚,和别人讨论性能优化时不再是空对空。

资料怎么配合练习

视频是主线,但只看不练基本等于没看。建议每看完一个模块就动手做对应的事:命令行那几段,自己建主题、发消息、起消费者组,观察分区和偏移量的变化;存储那几段,去 Kafka 的数据目录里看看实际生成了哪些文件,对照视频里讲的文件类型和数据定位方式去验证;副本和 ISR 那几段,搭一个多 broker 的集群,手动停掉一个节点,观察 ISR 怎么收缩、水位线怎么变,这比看十遍视频都管用。

集群部署部分强烈建议真机操作,虚拟机、Java、ZooKeeper、Kafka、监控按顺序装一遍,装的过程中遇到的报错本身就是学习材料,记下来比看教程里的顺利流程更有价值。集成部分可以挑一个和你工作最接近的场景动手:做后端的就把 SpringBoot 那条打通,做数据的就把 Flume 或 Spark 那条跑起来,跑通一条比每条都浅尝一遍强。

最后,把常见问题和优化简介当成自测清单。看完之后合上视频,试着用你自己的话回答:数据是怎么存的、副本是怎么同步的、消费者组是怎么分配的、积压了怎么排查。答不上来的地方,回到对应模块重看,而不是从头再刷一遍。这样一轮下来,Kafka 对你来说才从一个会调的组件,变成一个你能解释、能排查、能负责的系统。

课程目录

📁 视频
36-kafka-存储数据-数据文件内容及数据定位.mp4  [355.6 MB]
39-kafka-存储数据-副本同步时的水位线变化.mp4  [73.1 MB]
55-kafka-扩展-KafkaLinux集群部署-Java安装.mp4  [64.0 MB]
61-kafka-集成-大数据场景-Spark.mp4  [98.2 MB]
56-kafka-扩展-KafkaLinux集群部署-ZooKeeper安装.mp4  [115.3 MB]
42-kafka-消费数据-消费数据的基本流程.mp4  [101.0 MB]
50-kafka-消费数据-消费者Leader选举.mp4  [302.7 MB]
46-kafka-消费数据-消费者组介绍.mp4  [253.6 MB]
54-kafka-扩展-KafkaLinux集群部署-虚拟机安装.mp4  [217.5 MB]
37-kafka-存储数据-数据文件字节计算方式.mp4  [148.6 MB]
64-kafka-优化简介.mp4  [125.2 MB]
52-kafka-扩展-零拷贝.mp4  [140.1 MB]
41-kafka-存储数据-日志清理策略.mp4  [77.4 MB]
45-kafka-消费数据-事务数据的隔离级别.mp4  [225.3 MB]
49-kafka-消费数据-分区分配策略演示.mp4  [323.9 MB]
35-kafka-存储数据-数据存储流程.mp4  [150.8 MB]
33-kafka-生产数据-事务流程.mp4  [446.1 MB]
58-kafka-扩展-KafkaLinux集群部署-监控软件安装.mp4  [152.5 MB]
59-kafka-扩展-KafkaLinux集群部署-KRaft模式安装.mp4  [140.1 MB]
38-kafka-存储数据-数据同步一致性问题.mp4  [161.0 MB]
51-kafka-扩展-分布式集群脑裂问题.mp4  [78.8 MB]
43-kafka-消费数据-数据消费的偏移量问题.mp4  [153.6 MB]
60-kafka-集成-大数据场景-Flume.mp4  [76.9 MB]
07-kafka-命令行操作-主题创建.mp4  [189.5 MB]
53-kafka-扩展-顺写日志.mp4  [56.4 MB]
48-kafka-消费数据-分区分配策略介绍.mp4  [217.0 MB]
44-kafka-消费数据-偏移量同步提交和异步提交.mp4  [72.4 MB]
34-kafka-存储数据-数据存储文件类型介绍.mp4  [243.7 MB]
63-kafka-集成-Java场景-SpringBoot.mp4  [132.2 MB]
57-kafka-扩展-KafkaLinux集群部署-Kafka安装.mp4  [173.7 MB]
02-kafka-文件目录说明.mp4  [13.4 MB]
30-kafka-生产数据-数据重复及乱序的原因及原理.mp4  [231.4 MB]
40-kafka-存储数据-ISR列表变化和传播.mp4  [145.6 MB]
65-kafka-常见问题.mp4  [300.4 MB]
08-kafka-命令行操作-生产者和消费者.mp4  [79.4 MB]
03-Kafka-软件介绍.mp4  [195.0 MB]
20-kafka-启动服务-Broker组件对象介绍.mp4  [114.4 MB]
47-kafka-消费数据-消费者偏移量内部主题.mp4  [52.1 MB]
12-kafka-构建源码环境.mp4  [105.1 MB]
10-kafka-代码-消费者.mp4  [136.2 MB]
25-kafka-生产数据-拦截器和序列化处理.mp4  [228.9 MB]
09-kafka-代码-生产者.mp4  [123.1 MB]
31-kafka-生产数据-幂等性操作.mp4  [202.3 MB]
04-Kafka-JMS介绍.mp4  [212.4 MB]
29-kafka-生产数据-ACKS数据接收应答处理机制.mp4  [153.7 MB]
06-Kafka-安装与启动.mp4  [242.8 MB]
13-kafka-基础架构图形推演.mp4  [263.5 MB]
18-kafka-启动服务-Controller的选举.mp4  [184.6 MB]
14-kafka-基础组件图形推演.mp4  [205.3 MB]
32-kafka-生产数据-事务操作.mp4  [182.8 MB]
16-kafka-启动服务-ZooKeeper的核心功能.mp4  [78.4 MB]
19-kafka-启动服务-Controller和Broker的通信原理及底层通信机制.mp4  [525.9 MB]
01-Kafka-课程介绍.mp4  [44.7 MB]
05-Kafka-组件.mp4  [50.5 MB]
17-kafka-启动服务-Broker启动后ZooKeeper节点的变化.mp4  [155.8 MB]
21-kafka-主题创建-代码简析.mp4  [221.0 MB]
28-kafka-生产数据-数据的异步发送和同步发送.mp4  [83.1 MB]
26-kafka-生产数据-分区器及分区计算策略.mp4  [256.5 MB]
11-kafka-客户端便利小工具.mp4  [55.9 MB]
24-kafka-生产数据-生产者流程分析.mp4  [175.6 MB]
15-kafka-windows集群部署.mp4  [314.1 MB]
22-kafka-主题创建-主题分区副本分配策略.mp4  [331.0 MB]
27-kafka-生产数据-数据收集器和Sender发送线程.mp4  [171.9 MB]
23-kafka-主题创建-底层流程分析.mp4  [214.6 MB]
62-kafka-集成-大数据场景-Flink.mp4  [48.0 MB]
课件.zip  [23.8 MB]