🔴

Kafka 内核实战:从消息投递到流式架构源码解析

系统掌握 Apache Kafka 3.7+ 全貌:二进制协议拆解、Reactor 网络模型、日志存储引擎源码、ISR 副本机制、KRaft 控制器、Kafka Streams 流处理、Kafka Connect、分层时间轮源码,以及 10 个真实生产故障根因分析。32 章内核剖析级别,完全免费。

32
章节
免费
永久
开始阅读 →
目录
Ch01
Kafka 不只是消息队列
消息队列 vs 事件流平台的本质差异,与 RabbitMQ/Pulsar/RocketMQ/Redpanda 深度对比,适用场景决策矩阵
Ch02
架构全景:一条消息的完整旅程
Producer → Interceptor → Serializer → Partitioner → RecordAccumulator → Sender → Broker → Consumer 全链路图解与延迟构成
Ch03
KRaft 模式:Raft 协议在 Kafka 中的实现
Raft 协议核心原理,Kafka KRaft 变体,__cluster_metadata Topic,ZooKeeper → KRaft 完整迁移流程
Ch04
Kafka 协议:二进制通信格式拆解
Request/Response 帧结构,ApiKey 版本协商,Produce/Fetch/Metadata 请求字节级拆解,Wireshark 抓包分析
Ch05
消息格式演进:V0→V1→V2 RecordBatch
三代消息格式字节结构对比,V2 RecordBatch 设计(varints 节省空间),CRC 校验,Magic Byte,格式演进对排查的意义
Ch06
Producer 内部架构:双线程模型与内存管理
主线程 vs Sender 线程分工,BufferPool 内存复用,RecordAccumulator 缓冲策略,batch.size + linger.ms 数学关系,背压机制
Ch07
幂等与事务:Exactly-Once 的代价与边界
PID + Epoch + Sequence 幂等原理,TransactionCoordinator 状态机,两阶段提交流程,Zombie Fencing,EOS 性能损耗实测
Ch08
Producer 调优:百万 TPS 的配置之道
五种压缩算法实测(压缩率+CPU+延迟),max.in.flight 与消息乱序真相,完整压测方法论,从 5 万到 100 万 TPS 的优化案例
Ch09
Consumer Group 协议:加入、同步与心跳
Group Coordinator 选择,JoinGroup/SyncGroup/Heartbeat 交互时序,Generation ID,三种分配策略源码解析,Rebalance 超时参数关系
Ch10
Offset 的一切:存储、提交与回溯
__consumer_offsets 内部结构,Offset Compaction,commitSync 性能陷阱,Consumer Position/Committed Offset/LEO 三者关系,幽灵消费问题
Ch11
协作式再平衡与静态成员
Eager vs Cooperative 再平衡对比,CooperativeStickyAssignor 增量迁移,group.instance.id 静态成员,Consumer Rack Awareness 就近消费
Ch12
Consumer 调优与消费积压治理
max.poll.records + max.poll.interval.ms + session.timeout.ms 三角关系,Consumer Lag 三种计算方式,积压应急 5 种方案,Fetch 请求优化
Ch13
网络层:Reactor 模型与请求处理全流程
Acceptor → Processor → RequestChannel → RequestHandler 线程模型,Purgatory 延迟操作队列,num.network.threads/num.io.threads 调参依据
Ch14
日志存储引擎:为什么 Kafka 这么快
LogSegment 文件结构字节级分析,稀疏索引二分查找,顺序写+页缓存+零拷贝+mmap 四重优化,顺序写 vs 随机写 1000 倍性能差,Log Recovery
Ch15
副本机制:ISR、水位线与数据一致性
Follower Fetch 流程,LEO/HW/Leader Epoch 三层水位,ISR 收缩扩张条件,Unclean Leader Election 数据丢失模拟,KIP-101 Leader Epoch 修复
Ch16
日志压缩与保留:Compaction 源码级解析
delete vs compact 策略,Compaction 线程工作原理(OffsetMap → 脏段清洗 → Swap),Tombstone 消息,Compaction 与事务消息交互
Ch17
源码阅读指南:模块结构与调试环境
源码目录结构(core/clients/streams/connect/raft),IntelliJ 调试环境,断点追踪一条消息,核心类关系图
Ch18
Produce 请求的完整处理路径
KafkaApis.handleProduceRequest → ReplicaManager.appendToLocalLog → Log.append → LogSegment.append 完整源码路径,DelayedProduce 实现
Ch19
Fetch 请求与 Consumer 拉取机制
handleFetchRequest 源码,Leader vs Follower 读路径差异,FetchDataInfo 构建,DelayedFetch 触发,Consumer Fetcher 预取逻辑
Ch20
Controller 源码:选举、分配与状态机
QuorumController 类,Partition 状态机(NewPartition→Online→Offline),Replica 状态机,ControllerEvent 单线程处理,Controller failover 流程
Ch21
Group Coordinator 源码:Rebalance 全流程
GroupMetadataManager,GroupState 状态机,handleJoinGroup/handleSyncGroup 源码,DelayedJoin 延迟等待,Offset 存储内部实现
Ch22
时间轮与延迟操作:Purgatory 的精妙设计
为什么不用 DelayQueue,Kafka 分层时间轮 O(1) 插入原理,TimingWheel 实现,Purgatory 统一 DelayedProduce/Fetch/Join 抽象
Ch23
Kafka Streams 架构:拓扑、线程与状态
StreamThread → Task → Processor 三层结构,StreamsPartitionAssignor,Standby Replicas 热备,RocksDB 状态存储调优,Changelog Topic 容错
Ch24
窗口、Join 与 Exactly-Once 流处理
四种窗口实现差异,KStream-KStream/KStream-KTable/KTable-KTable 三种 Join 语义,Grace Period 乱序处理,Streams EOS v2 性能提升
Ch25
ksqlDB:用 SQL 做实时流处理
ksqlDB 架构,CREATE STREAM/TABLE,Push Query vs Pull Query,Materialized View,ksqlDB vs Kafka Streams vs Flink SQL 选型
Ch26
Kafka Connect 深入:框架原理与自定义 Connector
Worker/Task/Converter 架构,Distributed 模式 Offset 管理,Debezium CDC 实战,自定义 Source Connector 完整示例,SMT 链式转换
Ch27
Schema Registry 与数据契约
_schemas Topic,四种兼容性级别,Schema 演进实战(字段增删改),Data Contract 在微服务治理中的作用,Schema Registry 在 CI/CD 中集成
Ch28
监控体系:从指标到告警的完整方案
JMX Exporter 配置,五大黄金指标,Prometheus + Grafana Dashboard 模板,分层告警规则,端到端延迟追踪
Ch29
性能调优:操作系统、JVM 与 Broker 全链路
磁盘选型(SSD/HDD/RAID),Page Cache 调优,vm.dirty_ratio,G1GC 参数,ZGC 可行性,num.io.threads/num.replica.fetchers 调参公式
Ch30
安全加固:认证、授权、加密与审计
SASL 五种机制对比,SSL/TLS 性能影响实测,ACL 权限模型,Kafka Audit Log,RBAC,生产安全加固 Checklist
Ch31
跨集群复制与容灾架构
MirrorMaker 2 架构,三种 Geo-Replication 模式,Offset Translation,RPO/RTO 设计,Confluent Cluster Linking vs MM2 对比
Ch32
生产故障实录:10 个真实案例的根因分析
ISR 雪崩、Rebalance 风暴、消息丢失、OOM、磁盘耗尽、分区数过多、SSL 证书过期、跨 AZ 延迟飙升等 10 个真实故障的完整根因分析与解决方案

💬 留言讨论