跳到主要内容

Kafka 常用命令速查

以下命令以官方 kafka-* 脚本为例(KRaft 或 ZK 模式均可用)。请先确认 KAFKA_HOMEPATH 中包含 Kafka 的 bin/

基础信息

# 查看版本
kafka-topics.sh --version

# 查看集群信息(KRaft)
kafka-metadata-quorum.sh --bootstrap-server localhost:9092 describe

Topic 管理

# 列出所有 Topic
kafka-topics.sh --bootstrap-server localhost:9092 --list

# 创建 Topic
kafka-topics.sh --bootstrap-server localhost:9092 \
--create --topic demo \
--partitions 3 --replication-factor 1

# 查看 Topic 详情
kafka-topics.sh --bootstrap-server localhost:9092 \
--describe --topic demo

# 修改分区数(只能增加)
kafka-topics.sh --bootstrap-server localhost:9092 \
--alter --topic demo --partitions 6

# 删除 Topic(需 broker 开启 delete.topic.enable=true)
kafka-topics.sh --bootstrap-server localhost:9092 \
--delete --topic demo

Producer / Consumer

# 生产消息(交互式)
kafka-console-producer.sh --bootstrap-server localhost:9092 \
--topic demo

# 消费消息(从最新)
kafka-console-consumer.sh --bootstrap-server localhost:9092 \
--topic demo --from-beginning

Consumer Group

# 列出所有 consumer group
kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list

# 查看 group 详情(lag 等)
kafka-consumer-groups.sh --bootstrap-server localhost:9092 \
--describe --group demo-group

# 重置 offset 到最早(示例)
kafka-consumer-groups.sh --bootstrap-server localhost:9092 \
--group demo-group --reset-offsets --to-earliest \
--execute --topic demo

ACL / 权限

# 查看 ACL
kafka-acls.sh --bootstrap-server localhost:9092 --list

# 添加 ACL(示例:允许用户写入 demo)
kafka-acls.sh --bootstrap-server localhost:9092 \
--add --allow-principal User:app \
--operation Write --topic demo

Broker / 配置

# 查看 broker 配置
kafka-configs.sh --bootstrap-server localhost:9092 \
--entity-type brokers --entity-name 0 --describe

# 修改 topic 配置(示例:保留 7 天)
kafka-configs.sh --bootstrap-server localhost:9092 \
--entity-type topics --entity-name demo \
--alter --add-config retention.ms=604800000

分区副本迁移

# 生成迁移计划(示例)
kafka-reassign-partitions.sh --bootstrap-server localhost:9092 \
--generate --topics-to-move-json-file topics.json \
--broker-list "0,1,2"

# 执行迁移
kafka-reassign-partitions.sh --bootstrap-server localhost:9092 \
--execute --reassignment-json-file reassignment.json

# 查看迁移状态
kafka-reassign-partitions.sh --bootstrap-server localhost:9092 \
--verify --reassignment-json-file reassignment.json

常用诊断

# 查看 topic 的 offset 及 lag
topic=demo
group=demo-group
kafka-run-class.sh kafka.tools.GetOffsetShell \
--broker-list localhost:9092 --topic "$topic"

kafka-consumer-groups.sh --bootstrap-server localhost:9092 \
--describe --group "$group" --members

说明:部分命令在不同 Kafka 版本脚本名略有差异,请以安装版本为准。