Kafka常用命令详解(19个最常用命令)

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

评论交流
    说说你的看法