【Kafka基础】消费者命令行完全指南:从基础到高级消费

Kafka消费者是消息系统的关键组成部分,掌握/export/home/kafka_zk/kafka_2.13-2.7.1/bin/kafka-console-consumer.sh工具的使用对于调试、测试和监控都至关重要。本文将全面介绍该工具的各种用法,帮助您高效地从Kafka消费消息。

1 基础消费模式

1.1 从最新位置消费

复制代码
/export/home/kafka_zk/kafka_2.13-2.7.1/bin/kafka-console-consumer.sh \
    --bootstrap-server 192.168.10.33:9092 \
    --topic testtopic

参数解析

  • --bootstrap-server: 指定Kafka集群地址
  • --topic: 指定消费的主题名称
    特点
  • 从该消费者组最后提交的offset开始消费
  • 如果没有提交记录,则从最新消息开始

1.2 从最早位置消费

复制代码
/export/home/kafka_zk/kafka_2.13-2.7.1/bin/kafka-console-consumer.sh \
    --bootstrap-server 192.168.10.33:9092 \
    --topic testtopic \
    --from-beginning

关键参数

  • --from-beginning: 从主题最早的消息开始消费
    应用场景
  • 数据回溯
  • 新消费者组初始化

2 消息元数据展示

2.1 显示消息Key

复制代码
/export/home/kafka_zk/kafka_2.13-2.7.1/bin/kafka-console-consumer.sh \
    --bootstrap-server 192.168.10.33:9092 \
    --topic testtopic \
    --property print.key=true \
    --property key.separator=":"

参数说明

  • print.key=true: 显示消息key
  • key.separator: 指定key/value分隔符

2.2 显示完整元数据

复制代码
/export/home/kafka_zk/kafka_2.13-2.7.1/bin/kafka-console-consumer.sh \
    --bootstrap-server 192.168.10.33:9092 \
    --topic testtopic \
    --property print.key=true \
    --property print.value=true \
    --property print.partition=true \
    --property print.offset=true \
    --property print.timestamp=true \
    --property key.separator=":" \
    --property line.separator="\n"

元数据参数

  • print.partition: 显示分区号
  • print.offset: 显示消息offset
  • print.timestamp: 显示时间戳

3 精准消费控制

3.1 指定分区消费

复制代码
/export/home/kafka_zk/kafka_2.13-2.7.1/bin/kafka-console-consumer.sh \
    --bootstrap-server 192.168.10.33:9092 \
    --topic testtopic \
    --partition 1

参数说明

  • --partition: 指定消费的分区编号

3.2 指定Offset消费

复制代码
/export/home/kafka_zk/kafka_2.13-2.7.1/bin/kafka-console-consumer.sh \
    --bootstrap-server 192.168.10.33:9092 \
    --topic testtopic \
    --partition 0 \
    --offset 1000

参数说明

  • --offset: 指定开始消费的offset位置

3.3 消费超时设置

复制代码
/export/home/kafka_zk/kafka_2.13-2.7.1/bin/kafka-console-consumer.sh \
    --bootstrap-server 192.168.10.33:9092 \
    --topic testtopic \
    --timeout-ms 10000

参数说明

  • --timeout-ms: 设置无消息时的超时时间(毫秒)

4 消费者组管理

4.1 使用消费者组

复制代码
/export/home/kafka_zk/kafka_2.13-2.7.1/bin/kafka-console-consumer.sh \
    --bootstrap-server 192.168.10.33:9092 \
    --topic testtopic \
    --group mygroup

参数说明

  • --group: 指定消费者组名称
    特点
  • 支持offset自动提交
  • 支持消费者组rebalance

4.2 手动控制offset提交

复制代码
/export/home/kafka_zk/kafka_2.13-2.7.1/bin/kafka-console-consumer.sh \
    --bootstrap-server 192.168.10.33:9092 \
    --topic testtopic \
    --group mygroup \
    --property enable.auto.commit=false

参数说明

  • enable.auto.commit=false: 关闭自动提交

5 高级消费配置

5.1 限制消费消息数

复制代码
/export/home/kafka_zk/kafka_2.13-2.7.1/bin/kafka-console-consumer.sh \
    --bootstrap-server 192.168.10.33:9092 \
    --topic testtopic \
    --max-messages 100

参数说明

  • --max-messages: 最大消费消息数

5.2 过滤消费

复制代码
/export/home/kafka_zk/kafka_2.13-2.7.1/bin/kafka-console-consumer.sh \
    --bootstrap-server 192.168.10.33:9092 \
    --topic testtopic \
    --property filter.key.regex="test.*"

参数说明

  • filter.key.regex: 按key正则过滤

5.3 消费速率控制

复制代码
/export/home/kafka_zk/kafka_2.13-2.7.1/bin/kafka-console-consumer.sh \
    --bootstrap-server 192.168.10.33:9092 \
    --topic testtopic \
    --property fetch.min.bytes=1024 \
    --property fetch.max.wait.ms=500

参数说明

6 常用命令扩展

6.1 消费多个主题

复制代码
/export/home/kafka_zk/kafka_2.13-2.7.1/bin/kafka-console-consumer.sh \
    --bootstrap-server 192.168.10.33:9092 \
    --whitelist "topic1|topic2"

6.2 显示消息头信息

复制代码
/export/home/kafka_zk/kafka_2.13-2.7.1/bin/kafka-console-consumer.sh \
    --bootstrap-server 192.168.10.33:9092 \
    --topic testtopic \
    --property print.headers=true

6.3 消费特定时间后的消息

复制代码
/export/home/kafka_zk/kafka_2.13-2.7.1/bin/kafka-console-consumer.sh \
    --bootstrap-server 192.168.10.33:9092 \
    --topic testtopic \
    --property offsets.storage=kafka \
    --property timestamp=1625097600000
相关推荐
爱吃提升6 小时前
python 分布式爬虫、爬虫合规与综合实战项目
分布式·爬虫·python
ZENERGY-众壹9 小时前
跨品牌逆变器升级:华为锦浪德业 API 对接的 7 个坑
分布式·华为·数据归一化·光伏运维·逆变器api
薛定谔的猫198213 小时前
LLaMA-Factory +DeepSpeed 分布式多卡训练实战全解
分布式·deepspeed·zero·多卡训练·多卡分布式训练
稚南城才子,乌衣巷风流13 小时前
RabbitMQ 消息队列:从入门到实战
分布式·rabbitmq
AI人工智能+电脑小能手15 小时前
【大白话说Java面试题 第194题】【08_Kafka篇】第10题:简述 Kafka 的 Rebalance 机制?
java·kafka·消费者组·rebalance·分布式消息队列
Database_Cool_1 天前
单机 MySQL 迁移到分布式数据库方便吗?阿里云 PolarDB-X 100% MySQL 协议兼容零改造平滑迁移
数据库·分布式·mysql
肥胖小羊2 天前
解决企业微信 AccessToken 刷新并发冲突的分布式锁机制实践
分布式·企业微信
AI人工智能+电脑小能手2 天前
【大白话说Java面试题 第192题】【08_Kafka篇】第8题:死信队列是什么?延时队列是什么?
java·kafka·消息队列·死信队列·延时队列
AI人工智能+电脑小能手2 天前
【大白话说Java面试题 第190题】【08_Kafka篇】第6题:消息队列有什么作用?
java·kafka·消息队列·系统设计·分布式架构
风中凌乱2 天前
kafka新版本集群的安装与部署
分布式·kafka