Kafka是大型架构核心,下面我详解Kafka命令@mikechen
1. 查看Kafka版本
查看当前Kafka版本信息。
kafka-topics.sh --version
输出:
3.8.0
适用场景:
- 检查环境版本
- 排查兼容性问题
2. 创建Topic
创建一个Topic。
kafka-topics.sh \
--create \
--topic order-topic \
--bootstrap-server localhost:9092 \
--partitions 3 \
--replication-factor 2
参数说明:
| 参数 | 说明 |
|---|---|
| partitions | 分区数 |
| replication-factor | 副本数 |
创建结果:
Created topic order-topic.
3. 查看所有Topic
列出集群中的所有Topic。
kafka-topics.sh \
--list \
--bootstrap-server localhost:9092
输出:
user-topic
order-topic
pay-topic
4. 查看Topic详情
查看Topic配置信息。
kafka-topics.sh \
--describe \
--topic order-topic \
--bootstrap-server localhost:9092
输出:
Topic: order-topic
PartitionCount: 3
ReplicationFactor: 2
可以查看:
- 分区数
- Leader
- ISR
- 副本分布
5. 删除Topic
删除Topic。
kafka-topics.sh \
--delete \
--topic order-topic \
--bootstrap-server localhost:9092
删除结果:
Topic order-topic marked for deletion.
6. 修改Topic分区数
增加Topic分区。
kafka-topics.sh \
--alter \
--topic order-topic \
--partitions 6 \
--bootstrap-server localhost:9092
注意:
Kafka只允许增加分区。
不允许:
6 → 3
7. 查看消费者组
查看当前所有消费者组。
kafka-consumer-groups.sh \
--list \
--bootstrap-server localhost:9092
输出:
order-group
user-group
8. 查看消费者组详情
查看消费情况。
kafka-consumer-groups.sh \
--describe \
--group order-group \
--bootstrap-server localhost:9092
输出:
TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG
order-topic 0 1000 1050 50
重点关注:
LAG
表示消息堆积量。
9. 重置消费位点(Offset)
将消费者重置到最早位置。
kafka-consumer-groups.sh \
--group order-group \
--reset-offsets \
--to-earliest \
--execute \
--all-topics \
--bootstrap-server localhost:9092
常用于:
- 数据重放
- 测试环境恢复
10. 启动生产者
进入生产者模式发送消息。
kafka-console-producer.sh \
--topic order-topic \
--bootstrap-server localhost:9092
输入:
order001
order002
order003
11. 启动消费者
消费消息。
kafka-console-consumer.sh \
--topic order-topic \
--from-beginning \
--bootstrap-server localhost:9092
输出:
order001
order002
order003
参数:
--from-beginning
表示从头消费。
12. 查看Broker API版本
查看Broker支持的协议版本。
kafka-broker-api-versions.sh \
--bootstrap-server localhost:9092
输出:
id:0 rack:null
ApiVersions:
Produce(0): 0 to 9
Fetch(1): 0 to 13
用途:
- 排查客户端兼容性问题
13. 查看Topic消息数量
获取Topic Offset。
kafka-run-class.sh \
kafka.tools.GetOffsetShell \
--broker-list localhost:9092 \
--topic order-topic
输出:
order-topic:0:10000
表示:
Partition0 当前Offset=10000
14. 查看集群状态
查看Broker信息。
kafka-metadata-quorum.sh \
--bootstrap-server localhost:9092 \
describe --status
Kafka KRaft模式下输出:
ClusterId: abc123
LeaderId: 1
查看:
- Controller Leader
- Broker状态
- 集群健康度
15. Leader重新选举
触发Leader重新选举。
kafka-leader-election.sh \
--bootstrap-server localhost:9092 \
--election-type preferred \
--all-topic-partitions
适用场景:
- Broker恢复后
- Leader均衡优化
16. 查看日志目录使用情况
查看Broker磁盘占用。
kafka-log-dirs.sh \
--bootstrap-server localhost:9092 \
--describe
输出:
{
"broker":0,
"logDirs":[
{
"logDir":"/data/kafka"
}
]
}
用于:
- 磁盘容量规划
- 排查磁盘热点
Kafka命令分类汇总
| 分类 | 核心命令 |
|---|---|
| Topic管理 | create、list、describe、delete、alter |
| 消费组管理 | list、describe、reset-offsets |
| 消息测试 | producer、consumer |
| 集群管理 | metadata-quorum、leader-election |
| 运维监控 | log-dirs、broker-api-versions |
| Offset管理 | GetOffsetShell |