Kafka是大型架构核心,下面我详解Kafka常用命令@mikechen
一、Topic 管理命令(最核心)
1、查看所有 Topic
查看当前 Kafka 集群中的所有 Topic。
kafka-topics.sh \
--bootstrap-server localhost:9092 \
--list
适用场景:
- 查看 Topic 是否创建成功;
- 排查 Topic 丢失问题;
- 运维巡检;
2、创建 Topic
Kafka 的并发能力,主要由 Partition 决定。
kafka-topics.sh \
--bootstrap-server localhost:9092 \
--create \
--topic order-topic \
--partitions 3 \
--replication-factor 2
参数说明:
| 参数 | 作用 |
|---|---|
| partitions | 分区数量 |
| replication-factor | 副本数 |
3、查看 Topic 详情
这是排查 Kafka 问题,最核心的命令之一。
kafka-topics.sh \
--bootstrap-server localhost:9092 \
--describe \
--topic order-topic
可以查看:
- Partition 数量;
- ISR 副本;
- Leader;;
- Replica 分布
4、删除 Topic
kafka-topics.sh \
--bootstrap-server localhost:9092 \
--delete \
--topic order-topic
注意:
生产环境一般禁止随便删 Topic。
因为:
- 数据不可恢复
- Consumer Offset 会丢失
5、修改 Partition 数量
kafka-topics.sh \
--bootstrap-server localhost:9092 \
--alter \
--topic order-topic \
--partitions 6
注意:
Kafka 只允许增加 Partition。
不允许减少。
原因:
减少 Partition 会导致数据路由混乱。
二、Producer 相关命令
6、启动生产者
kafka-console-producer.sh \
--bootstrap-server localhost:9092 \
--topic order-topic
然后输入消息:
mikechen
快速测试 Kafka 是否正常。
7、发送 Key-Value 消息
kafka-console-producer.sh \
--bootstrap-server localhost:9092 \
--topic order-topic \
--property "parse.key=true" \
--property "key.separator=:"
发送:
user1:order1
user2:order2
原理:
相同 Key 会进入同一个 Partition。
这是 Kafka 保证局部有序的核心机制。
三、Consumer 相关命令
8、启动消费者
kafka-console-consumer.sh \
--bootstrap-server localhost:9092 \
--topic order-topic \
--from-beginning
参数:
--from-beginning
表示从最早消息开始消费。
9、消费者组消费
kafka-console-consumer.sh \
--bootstrap-server localhost:9092 \
--topic order-topic \
--group order-group
作用:
模拟真实 Consumer Group。
10、查看 Consumer Group
kafka-consumer-groups.sh \
--bootstrap-server localhost:9092 \
--list
生产环境非常常用。
11、查看消费积压(Lag)
kafka-consumer-groups.sh \
--bootstrap-server localhost:9092 \
--describe \
--group order-group
重点指标:
| 指标 | 含义 |
|---|---|
| CURRENT-OFFSET | 当前消费位点 |
| LOG-END-OFFSET | 最新位点 |
| LAG | 消息积压 |
核心:
Lag 越大,说明消费越慢。
这是高并发系统中最关键指标之一。
12、重置 Offset
kafka-consumer-groups.sh \
--bootstrap-server localhost:9092 \
--group order-group \
--reset-offsets \
--to-earliest \
--execute \
--topic order-topic
作用:
重新消费历史数据。
典型场景:
- 数据修复;
- 补偿消费;
- Bug 回放;
四、消息查看命令
13、查看 Topic 最新消息
快速查看 Topic 中的数据:
kafka-console-consumer.sh \
--bootstrap-server localhost:9092 \
--topic order-topic \
--from-beginning \
--max-messages 10
14、查看指定 Partition
定位某个 Partition 的问题消息:
kafka-console-consumer.sh \
--bootstrap-server localhost:9092 \
--topic order-topic \
--partition 0 \
--offset 15
五、Broker 管理命令
15、查看 Broker API 版本
查看 Broker 支持的 API。
升级 Kafka 时很常用。
kafka-broker-api-versions.sh \
--bootstrap-server localhost:9092
16、查看 Kafka 配置
kafka-configs.sh \
--bootstrap-server localhost:9092 \
--entity-type brokers \
--entity-name 0 \
--describe
可以查看:
- Broker 配置;
- 动态配置;
- 限流参数;
六、性能测试命令(高并发核心)
17、Producer 性能测试
这是 Kafka 压测最核心命令。
kafka-producer-perf-test.sh \
--topic order-topic \
--num-records 1000000 \
--record-size 1024 \
--throughput 100000 \
--producer-props bootstrap.servers=localhost:9092
核心指标:
| 指标 | 含义 |
|---|---|
| throughput | 吞吐量 |
| latency | 延迟 |
| records/sec | TPS |
18、Consumer 性能测试
kafka-consumer-perf-test.sh \
--bootstrap-server localhost:9092 \
--topic order-topic \
--messages 1000000
作用:
测试消费能力。
七、集群排查命令
19、查看 ISR 状态
ISR(In-Sync Replicas):
表示与 Leader 同步的副本集合。
如果 ISR 频繁变化:
说明:
- 网络抖动;
- 磁盘 IO 不足;
- Broker 压力过大。
kafka-topics.sh \
--bootstrap-server localhost:9092 \
--describe
重点看:
ISR