c语言编程笔录

首页 >   > 笔记大全

笔记大全

Kafka常用命令之kafkaconsoleconsumersh怎么使用

更新时间:2023-12-06

简介

kafka-console-consumer.sh是Kafka中的一个命令行工具,主要用来消费Kafka中的消息。该工具支持从一个指定topic的指定分区或所有分区中消费消息,支持输出到控制台或者到一个指定的文件,并且支持手动提交offset或者自动提交。

使用方法

1. 消费topic中所有分区的消息
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
其中--bootstrap-server参数指定了Kafka集群的地址,--topic参数指定了要消费的topic,--from-beginning参数指定了从该topic的最开始位置开始消费。

2. 消费topic中某个分区的消息

./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --partition 0 --from-beginning
其中--partition参数指定了要消费的分区号,分区号从0开始。

3. 将消息输出到文件

./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning --output-file output.log
该命令指定了--output-file参数,将消息输出到指定的文件output.log中。

4. 手动提交offset

./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning --consumer-property group.id=mygroup --property print.key=true --property print.value=true --property key.separator=:
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning --consumer-property group.id=mygroup --property print.key=true --property print.value=true --property key.separator=: --from-beginning --max-messages 3 --consumer-property auto.offset.reset=earliest | awk '{print $1,$3}'
该命令使用了--consumer-property参数指定了消费者组的名称,--property参数指定了要打印的消息的key和value的分隔符为":"。注意,这种方式下需要手动提交offset。

5. 自动提交offset

./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --consumer-property group.id=mygroup --from-beginning --max-messages 3 --consumer-property auto.offset.reset=earliest
该命令使用了--consumer-property参数指定了消费者组的名称,并且使用了--consumer-property auto.offset.reset=earliest参数表示使用最早的offset开始消费,使用--from-beginning参数表示从topic最开始的位置开始消费,使用--max-messages参数指定了最多消费3条消息。

总结

kafka-console-consumer.sh是一个非常有用的Kafka命令行工具,能够快速方便地消费Kafka中的消息。通过本文介绍的各种使用方式,我们可以很好地掌握如何使用该工具来消费消息,同时也理解了手动提交offset和自动提交offset的区别。在Kafka开发中,kafka-console-consumer.sh肯定会成为我们的常用工具之一。