Kafka 常用运维命令

环境说明

  • Kafka 安装目录:/tidb/kafka_2
  • Kafka 版本:基于 Kafka 2.x(命令格式兼容主流版本)
  • Bootstrap Server:192.168.0.31:19092
  • 所有命令均在 Kafka 安装目录下执行,使用 bin/ 下的脚本。

一、Topic 管理

1. 列出所有 Topic

bin/kafka-topics.sh --bootstrap-server 192.168.0.31:19092 --list --exclude-internal

说明

  • --list:列出所有 Topic。
  • --exclude-internal:排除 Kafka 内部 Topic(如 __consumer_offsets),便于查看业务 Topic。

2. 查看 Topic 详情

# 查看指定 Topic 的分区、副本、Leader 等信息
bin/kafka-topics.sh --topic test --bootstrap-server 192.168.0.31:19092 --describe --exclude-internal

# 实际业务 Topic 示例
bin/kafka-topics.sh --topic xxxxx --bootstrap-server 192.168.0.31:19092 --describe --exclude-internal

说明

  • --describe:显示 Topic 的详细信息,包括分区数、副本因子、每个分区的 Leader、副本分布、ISR 等。
  • 常用于检查 Topic 的分区状态是否正常,例如是否有分区 Leader 缺失、副本不同步等情况。

二、消息查看与验证

1. 消费 Topic 数据(查看是否有消息)

bin/kafka-console-consumer.sh --topic canal_spider --bootstrap-server 192.168.0.31:19092

说明

  • 该命令会从 Topic 的最新位置开始消费并输出到控制台(默认不指定 --from-beginning 时只消费新产生的消息)。
  • 用途:快速验证 Topic 中是否有新数据流入,或者检查消息内容格式。
  • 若想从头消费所有历史数据,可加上 --from-beginning 参数。

2. 查看消费者组消费情况

bin/kafka-consumer-groups.sh --bootstrap-server 192.168.0.31:19092 --group xxxxx --describe

说明

  • --describe:显示指定消费者组的详细信息,包括每个消费者订阅的分区、当前消费偏移量(CURRENT-OFFSET)、日志末端偏移量(LOG-END-OFFSET)、消费滞后量(LAG)等。
  • 这是排查消息堆积(LAG 较大)的主要手段。

三、消费者组管理

1. 列出所有消费者组

bin/kafka-consumer-groups.sh --bootstrap-server 192.168.0.31:19092 --list

说明

  • 列出当前 Kafka 集群中所有的消费者组,便于确认哪些组正在运行。

2. 查看特定消费者组的详细消费情况

bin/kafka-consumer-groups.sh --describe --bootstrap-server 192.168.0.31:19092 --group xxxxx

说明

  • 与上一节的查看消费者组类似,但这里更强调使用 --describe 输出每个分区的消费详情。
  • 重点观察 LAG 列,如果 LAG 持续增大,说明消费速度跟不上生产速度,需要优化消费者或增加并发。

3. 重置消费位置到最新(跳过历史消息)

bin/kafka-consumer-groups.sh --bootstrap-server 192.168.0.31:19092 \
  --group xxxx-kafka-sync \
  --topic xxxx \
  --reset-offsets --to-latest --execute

说明

  • 将指定消费者组对指定 Topic 的消费偏移量重置为最新位置,即跳过所有未消费的历史消息。
  • 参数解释:
    • --reset-offsets:执行重置操作。
    • --to-latest:重置到最新偏移量。
    • --execute:真正执行重置;若不加该参数则只打印将要执行的操作,不实际修改。
  • 重要:执行重置前,必须确保该消费者组的所有消费者实例已经停止,否则会报错。
  • 适用场景:数据不重要、需要快速丢弃堆积消息,或者消费逻辑变更需要从最新数据开始。

4. 重置消费位置到指定偏移量

bin/kafka-consumer-groups.sh --bootstrap-server 192.168.0.31:19092 \
  --group xxxx-group \
  --topic xxxx \
  --reset-offsets --to-offset 108840000 --execute

说明

  • 将消费偏移量重置到指定的数值(此处为 108840000)。
  • 适用场景:需要精确回放或跳过某些消息,例如数据修复后希望从特定位置重新消费。
  • 同样需要先停止消费者组。

5. 删除消费者组

bin/kafka-consumer-groups.sh --bootstrap-server 192.168.0.31:19092 --delete --group xxxxx

说明

  • 删除指定的消费者组,删除后该组的偏移量信息也会被清除。
  • 仅当该组没有活跃的消费者时才能删除成功。
  • 常用于清理不再使用的消费者组,避免元数据残留。

四、Kafka 服务管理

启动 Kafka 服务

# 前台启动(会占用当前终端)
bin/kafka-server-start.sh config/server.properties

# 后台启动(推荐)
setsid bin/kafka-server-start.sh config/server.properties &

说明

  • config/server.properties 是 Kafka 服务的主配置文件,需要根据实际环境调整。
  • 使用 setsid ... & 可以将进程放入后台并脱离当前会话,避免终端关闭导致服务停止。
  • 也可以使用 nohup 命令达到类似效果。

五、注意事项与最佳实践

  1. 重置偏移量前务必停止消费者
    如果消费者组中仍有活跃的消费者,Kafka 会拒绝执行重置操作,并提示 Error: Assignments can only be reset if the group is inactive

  2. 谨慎使用 --to-latest
    该操作会跳过所有未消费的消息,可能导致数据丢失,仅适用于可丢弃的数据或测试环境。

  3. 使用 --execute 前先预览
    可以先不加 --execute 执行一次命令,查看将要重置到的偏移量是否符合预期,确认后再添加 --execute 执行。

  4. 备份偏移量信息
    在进行重要的重置操作前,建议先记录当前消费者组的偏移量,以便出现问题时可以回退。

  5. 理解 LAG 的含义
    LAG = LOG-END-OFFSET - CURRENT-OFFSET,表示尚未消费的消息数量。持续增长说明消费能力不足,需要扩展消费者或优化消费逻辑。

posted @ 2026-09-08 18:18  BeginnerY  阅读(3)  评论(0)    收藏  举报