附录:附录:速查手册
zjc 于 2026-01-29 发布
这是《Kafka 零基础实战指南》的独立章节版。本章从概念、实操和生产排查三个视角展开,代码块保留了原书可直接运行的版本。
A.1 核心配置速查
Broker 端
| 配置 |
默认 |
说明 |
broker.id / node.id |
- |
节点唯一 ID |
log.dirs |
/tmp/kafka-logs |
数据目录,逗号分隔多目录 |
num.partitions |
1 |
新 topic 默认分区数 |
default.replication.factor |
1 |
新 topic 默认副本数 |
min.insync.replicas |
1 |
写入所需最小同步副本 |
unclean.leader.election.enable |
false |
是否允许非 ISR 副本当选 |
log.retention.hours |
168 |
日志保留时间 |
log.retention.bytes |
-1 |
每分区保留大小 |
log.segment.bytes |
1GB |
单 segment 大小 |
log.index.interval.bytes |
4096 |
稀疏索引间隔 |
num.network.threads |
3 |
网络线程数 |
num.io.threads |
8 |
请求处理线程数 |
num.replica.fetchers |
1 |
副本拉取线程数 |
message.max.bytes |
~1MB |
单条消息上限 |
auto.create.topics.enable |
true |
自动建 topic(生产建议关) |
auto.leader.rebalance.enable |
true |
自动 Leader 均衡 |
replica.lag.time.max.ms |
30000 |
ISR 判定超时 |
Producer
| 配置 |
默认 |
说明 |
acks |
all |
0/1/all |
enable.idempotence |
true |
幂等生产者 |
retries |
MAX |
重试次数 |
delivery.timeout.ms |
120000 |
发送总期限 |
linger.ms |
0 |
攒批等待 |
batch.size |
16KB |
单批大小 |
buffer.memory |
32MB |
发送缓冲总量 |
compression.type |
none |
zstd/lz4/snappy/gzip |
max.in.flight.requests.per.connection |
5 |
未确认请求数 |
max.request.size |
1MB |
单请求上限 |
transactional.id |
- |
事务 ID,需稳定 |
Consumer
| 配置 |
默认 |
说明 |
group.id |
- |
消费组 |
enable.auto.commit |
true |
自动提交(生产建议关) |
auto.commit.interval.ms |
5000 |
自动提交间隔 |
auto.offset.reset |
latest |
无位移时策略 |
session.timeout.ms |
45000 |
心跳超时 |
heartbeat.interval.ms |
3000 |
心跳间隔 |
max.poll.interval.ms |
300000 |
两次 poll 上限 |
max.poll.records |
500 |
单次 poll 条数 |
fetch.min.bytes |
1 |
返回最小数据量 |
fetch.max.wait.ms |
500 |
攒批最长等待 |
max.partition.fetch.bytes |
1MB |
单分区拉取上限 |
isolation.level |
read_uncommitted |
事务场景 read_committed |
partition.assignment.strategy |
Range+CoopSticky |
分配策略 |
group.instance.id |
- |
静态成员 ID |
A.2 常用命令速查
# 主题
kafka-topics.sh --create --topic t --partitions 6 --replication-factor 3
kafka-topics.sh --list
kafka-topics.sh --describe --topic t
kafka-topics.sh --alter --topic t --partitions 12
kafka-topics.sh --delete --topic t
kafka-topics.sh --describe --under-replicated-partitions
kafka-topics.sh --describe --unavailable-partitions
# 控制台
kafka-console-producer.sh --topic t
kafka-console-consumer.sh --topic t --from-beginning
kafka-console-consumer.sh --topic t --group g \
--property print.key=true --property print.partition=true
# 消费组
kafka-consumer-groups.sh --list
kafka-consumer-groups.sh --describe --group g
kafka-consumer-groups.sh --group g --topic t \
--reset-offsets --to-earliest --execute
# 位移与日志
kafka-get-offsets.sh --topic t
kafka-dump-log.sh --files <segment.log> --print-data-log
# 集群与运维
kafka-broker-api-versions.sh --bootstrap-server bs
kafka-metadata-quorum.sh --bootstrap-server bs describe --status
kafka-leader-election.sh --bootstrap-server bs \
--election-type preferred --all-topic-partitions
kafka-reassign-partitions.sh --bootstrap-server bs \
--topics-to-move-json x.json --broker-list 1,2,3 --generate
kafka-configs.sh --bootstrap-server bs \
--alter --entity-type topics --entity-name t \
--set-config retention.ms=86400000
# 压测
kafka-producer-perf-test.sh --topic t --num-records 1000000 \
--record-size 1024 --throughput -1 \
--producer-props bootstrap.servers=bs acks=all
kafka-consumer-perf-test.sh --bootstrap-server bs --topic t \
--messages 1000000
A.3 可靠性黄金配置
# Broker / Topic
default.replication.factor=3
min.insync.replicas=2
unclean.leader.election.enable=false
offsets.topic.replication.factor=3
# Producer
acks=all
enable.idempotence=true
delivery.timeout.ms=120000
消费端:手动提交、先处理后提交、失败进重试/死信、下游幂等。
A.4 学习资源
- Apache Kafka 官方文档:https://kafka.apache.org/documentation/
- Kafka 源码:https://github.com/apache/kafka
- KIP 列表:https://kafka.apache.org/ips
- Confluent Blog:工程实践与深度解析
- 《Kafka 权威指南》《数据密集型应用系统设计》