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命令达到类似效果。
五、注意事项与最佳实践
-
重置偏移量前务必停止消费者:
如果消费者组中仍有活跃的消费者,Kafka 会拒绝执行重置操作,并提示Error: Assignments can only be reset if the group is inactive。 -
谨慎使用
--to-latest:
该操作会跳过所有未消费的消息,可能导致数据丢失,仅适用于可丢弃的数据或测试环境。 -
使用
--execute前先预览:
可以先不加--execute执行一次命令,查看将要重置到的偏移量是否符合预期,确认后再添加--execute执行。 -
备份偏移量信息:
在进行重要的重置操作前,建议先记录当前消费者组的偏移量,以便出现问题时可以回退。 -
理解 LAG 的含义:
LAG = LOG-END-OFFSET - CURRENT-OFFSET,表示尚未消费的消息数量。持续增长说明消费能力不足,需要扩展消费者或优化消费逻辑。

浙公网安备 33010602011771号