Kafka 常用指令大全
📌 一、Topic 管理
命令 | 功能 | 示例 |
---|---|---|
创建 Topic | 指定分区和副本数 | kafka-topics.sh --create --bootstrap-server localhost:9092 --topic test --partitions 3 --replication-factor 2 |
查看 Topic 列表 | 列出所有 Topic | kafka-topics.sh --bootstrap-server localhost:9092 --list |
查看 Topic 详情 | 显示分区、副本分布 | kafka-topics.sh --bootstrap-server localhost:9092 --describe --topic test |
增加分区数 | 仅支持增加(不可减少) | kafka-topics.sh --alter --bootstrap-server localhost:9092 --topic test --partitions 5 |
删除 Topic | 需配置 delete.topic.enable=true | kafka-topics.sh --bootstrap-server localhost:9092 --delete --topic test |
注意:删除 Topic 后需手动清理 Zookeeper 元数据(路径
/brokers/topics/[topic]
)及磁盘日志文件(log.dirs
目录)。
📡 二、生产者与消费者操作
命令 | 功能 | 示例 |
---|---|---|
控制台生产者 | 实时发送消息 | kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test |
控制台消费者 | 消费消息(支持历史数据) | kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning |
指定消费组 | 绑定消费者组 | kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --group my-group |
👥 三、消费者组管理
命令 | 功能 | 示例 |
---|---|---|
查看消费组列表 | 列出所有活跃消费组 | kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list |
查看消费进度 | 显示 Lag(未消费消息数) | kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group my-group --describe |
重置 Offset | 重设消费位点 | kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group my-group --reset-offsets --to-earliest --topic test --execute |
删除消费组 | 移除消费组元数据 | kafka-consumer-groups.sh --bootstrap-server localhost:9092 --delete --group my-group |
输出字段说明:
CURRENT-OFFSET
:当前消费进度LOG-END-OFFSET
:最新消息位点LAG
:未消费消息数(LOG-END-OFFSET - CURRENT-OFFSET
)
⚙️ 四、集群运维与监控
命令 | 功能 | 示例 |
---|---|---|
查询分区 Offset 范围 | 获取最小/最大位点 | kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list localhost:9092 --topic test --time -2 (最小)--time -1 (最大) |
Leader 副本均衡 | 优化分区负载 | kafka-preferred-replica-election.sh --bootstrap-server localhost:9092 |
查看日志文件内容 | 解析物理存储日志 | kafka-run-class.sh kafka.tools.DumpLogSegments --files 000000000000.log --print-data-log |
压测工具 | 测试吞吐量 | kafka-producer-perf-test.sh --topic test --num-records 100000 --record-size 1000 --throughput 2000 --producer-props bootstrap.servers=localhost:9092 |
⚠️ 关键注意事项
-
版本差异:
- 老版本(依赖 ZooKeeper):使用
--zookeeper localhost:2181
- 新版本(推荐):使用
--bootstrap-server localhost:9092
- 老版本(依赖 ZooKeeper):使用
-
Topic 命名规范:
- 避免使用
.
或_
前缀,防止与内部 Topic 冲突
- 避免使用
-
彻底删除 Topic:
- 需同时清理 Zookeeper 元数据和磁盘日志文件
-
消费者组管理:
- 重置 Offset 后需重启消费者生效
- 定期监控 Lag 防止消息积压
完整命令参考:
Apache Kafka 官方文档