目录
[第一章 Kafka概述与核心价值](#第一章 Kafka概述与核心价值)
[1.1 消息队列的演进与Kafka的诞生](#1.1 消息队列的演进与Kafka的诞生)
[1.2 Kafka的核心应用场景](#1.2 Kafka的核心应用场景)
[1.3 Kafka生态全景图](#1.3 Kafka生态全景图)
[第二章 Kafka核心概念与架构解析](#第二章 Kafka核心概念与架构解析)
[2.1 核心概念深度剖析](#2.1 核心概念深度剖析)
[2.2 Kafka架构设计精要](#2.2 Kafka架构设计精要)
[第三章 Kafka环境搭建与配置](#第三章 Kafka环境搭建与配置)
[3.1 单机部署实战](#3.1 单机部署实战)
[3.2 集群部署最佳实践](#3.2 集群部署最佳实践)
[3.3 Docker & Kubernetes部署](#3.3 Docker & Kubernetes部署)
[第四章 Kafka API深度使用](#第四章 Kafka API深度使用)
[4.1 生产者API与消息保障](#4.1 生产者API与消息保障)
[4.2 消费者API与位移管理](#4.2 消费者API与位移管理)
[4.3 Admin API运维操作](#4.3 Admin API运维操作)
[第五章 生产环境运维实践](#第五章 生产环境运维实践)
[5.1 监控指标体系](#5.1 监控指标体系)
[5.2 日志管理与数据清理](#5.2 日志管理与数据清理)
[5.3 安全加固方案](#5.3 安全加固方案)
[第六章 性能调优黄金法则](#第六章 性能调优黄金法则)
[6.1 生产者优化](#6.1 生产者优化)
[6.2 Broker优化](#6.2 Broker优化)
[6.3 消费者优化](#6.3 消费者优化)
[第七章 常见疑难问题排错](#第七章 常见疑难问题排错)
[7.1 消息丢失场景](#7.1 消息丢失场景)
[7.2 重复消费问题](#7.2 重复消费问题)
[7.3 集群脑裂问题](#7.3 集群脑裂问题)
[第八章 压力测试与基准报告](#第八章 压力测试与基准报告)
[8.1 测试环境规划](#8.1 测试环境规划)
[8.2 生产者压测](#8.2 生产者压测)
[8.3 消费者压测](#8.3 消费者压测)
[8.4 性能瓶颈分析](#8.4 性能瓶颈分析)
[第九章 Kafka源码解析进阶](#第九章 Kafka源码解析进阶)
[9.1 网络层设计](#9.1 网络层设计)
[9.2 存储引擎揭秘](#9.2 存储引擎揭秘)
[9.3 副本同步机制](#9.3 副本同步机制)
[第十章 Kafka未来演进](#第十章 Kafka未来演进)
[10.1 KRaft模式(去ZooKeeper化)](#10.1 KRaft模式(去ZooKeeper化))
[10.2 Tiered Storage分层存储](#10.2 Tiered Storage分层存储)
[10.3 流处理能力增强](#10.3 流处理能力增强)
第一章 Kafka概述与核心价值
1.1 消息队列的演进与Kafka的诞生
-
消息队列的三大核心功能(解耦、削峰、异步)
-
Kafka的设计哲学:高吞吐、分布式、持久化
-
与RabbitMQ、RocketMQ的对比分析
1.2 Kafka的核心应用场景
-
实时数据管道(如日志采集、用户行为追踪)
-
事件驱动架构(EDA)的基石
-
流处理平台(Kafka Streams、Flink集成)
1.3 Kafka生态全景图
-
核心组件:Broker、ZooKeeper、Producer、Consumer
-
周边生态:Connect、Streams、KSQL、MirrorMaker
第二章 Kafka核心概念与架构解析
2.1 核心概念深度剖析
-
Topic:逻辑消息分类单元
-
Partition:并行处理的秘密(分区策略详解)
-
Offset:消息的唯一标识与消费者定位
-
Replica:ISR机制与数据高可用保障
-
Consumer Group:水平扩展与负载均衡
2.2 Kafka架构设计精要
-
分布式Commit Log存储机制
-
生产者-存储层-消费者三级解耦
-
数据持久化策略(顺序写盘、零拷贝)
-
ZooKeeper的角色演变(KIP-500去ZK化)
第三章 Kafka环境搭建与配置
3.1 单机部署实战
bash
# 下载解压
wget https://archive.apache.org/dist/kafka/3.6.0/kafka_2.13-3.6.0.tgz
tar -xzf kafka_2.13-3.6.0.tgz
# 启动ZooKeeper(Kafka 3.0+内置)
bin/zookeeper-server-start.sh config/zookeeper.properties
# 启动Kafka Broker
bin/kafka-server-start.sh config/server.properties
3.2 集群部署最佳实践
- server.properties关键配置:
bash
broker.id=1
listeners=PLAINTEXT://host:9092
log.dirs=/data/kafka-logs
num.partitions=3
default.replication.factor=2
min.insync.replicas=1
3.3 Docker & Kubernetes部署
bash
# docker-compose.yml示例
version: '3'
services:
zookeeper:
image: zookeeper:3.8.0
kafka:
image: confluentinc/cp-kafka:7.3.0
depends_on: [zookeeper]
environment:
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092
第四章 Kafka API深度使用
4.1 生产者API与消息保障
java
// Java生产者示例(Exactly-Once语义)
Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("acks", "all");
props.put("enable.idempotence", "true");
props.put("transactional.id", "prod-1");
Producer<String, String> producer = new KafkaProducer<>(props);
producer.initTransactions();
try {
producer.beginTransaction();
producer.send(new ProducerRecord<>("orders", "key", "value"));
producer.commitTransaction();
} catch (ProducerFencedException e) {
producer.close();
}
4.2 消费者API与位移管理
python
# Python消费者示例(手动提交)
from kafka import KafkaConsumer
consumer = KafkaConsumer(
'user_events',
bootstrap_servers='localhost:9092',
group_id='analytics-group',
enable_auto_commit=False
)
for msg in consumer:
process_message(msg.value)
consumer.commit()
4.3 Admin API运维操作
java
// 创建Topic(3分区2副本)
AdminClient admin = AdminClient.create(props);
admin.createTopics(Collections.singleton(
new NewTopic("logs", 3, (short) 2)
));
第五章 生产环境运维实践
5.1 监控指标体系
-
关键监控项:
-
Broker: UnderReplicatedPartitions, ActiveControllerCount
-
Producer: RecordSendRate, RequestLatency
-
Consumer: RecordsLag, CommitRate
-
5.2 日志管理与数据清理
java
# 按时间保留策略
log.retention.hours=168
# 按大小保留策略
log.retention.bytes=1073741824
# 清理策略
log.cleanup.policy=delete
5.3 安全加固方案
-
SASL/SCRAM认证配置
-
SSL加密传输
-
ACL权限控制
第六章 性能调优黄金法则
6.1 生产者优化
-
batch.size(16KB-1MB)
-
linger.ms(5-100ms)
-
compression.type(snappy/lz4/zstd)
6.2 Broker优化
-
num.io.threads=8
-
num.network.threads=3
-
log.flush.interval.messages=10000
6.3 消费者优化
-
fetch.min.bytes=1
-
max.poll.records=500
-
多线程消费模型
第七章 常见疑难问题排错
7.1 消息丢失场景
-
生产者未收到ACK
-
Broker刷盘策略不当
-
消费者未提交offset
7.2 重复消费问题
-
生产者重试导致消息重复
-
消费者提交offset失败
-
解决方案:幂等处理、事务消息
7.3 集群脑裂问题
-
ZooKeeper会话超时
-
网络分区隔离
-
恢复方案:优先保障分区一致性
第八章 压力测试与基准报告
8.1 测试环境规划
-
3 Broker集群(16核/32GB/NVMe SSD)
-
万兆网络环境
8.2 生产者压测
bash
bin/kafka-producer-perf-test.sh \
--topic test \
--num-records 1000000 \
--record-size 1024 \
--throughput -1 \
--producer-props bootstrap.servers=localhost:9092
8.3 消费者压测
bash
bin/kafka-consumer-perf-test.sh \
--topic test \
--bootstrap-server localhost:9092 \
--messages 1000000
8.4 性能瓶颈分析
-
网络带宽限制(单分区吞吐上限)
-
磁盘IOPS瓶颈
-
CPU密集型操作(压缩/加密)
第九章 Kafka源码解析进阶
9.1 网络层设计
-
Reactor模式实现(SocketServer核心类)
-
请求处理全流程解析
9.2 存储引擎揭秘
-
分段日志(LogSegment)
-
索引文件(OffsetIndex/TimeIndex)
-
页缓存优化技巧
9.3 副本同步机制
-
Leader/Follower状态机
-
LEO与HW更新逻辑
-
副本故障转移流程
第十章 Kafka未来演进
10.1 KRaft模式(去ZooKeeper化)
-
共识算法改进
-
控制器架构重构
10.2 Tiered Storage分层存储
-
冷热数据分离策略
-
与对象存储集成
10.3 流处理能力增强
-
KStreams与KSQL演进
-
与Flink深度整合