Kafka控制台消费者:如何从一个主题获取最后N个消息而不是从一开始的所有消息?

Tak*_*oUp 18 apache-kafka

我可以做这个:

./bin/kafka-avro-console-consumer --zookeeper 10.0.0.225:2181/kafka
--topic myTopic --property schema.registry.url=http://10.0.0.100:8081 
--from-beginning
Run Code Online (Sandbox Code Playgroud)

但是我的消息太多了.我宁愿只得到最后的N个.我怎么能用kafka控制台消费者做到这一点?

mlg*_*mlg 11

如果您想坚持使用捆绑的二进制文件,则需要使用简单的使用者shell:

bin/kafka-simple-consumer-shell.sh --broker-list mybroker:9092 --topic
mytopic --partition mypartition --offset myoffset
Run Code Online (Sandbox Code Playgroud)

我推荐kt ; 它更快,更轻,并有更好的选择.

  • 问题是我们必须指定分区,但数据可能来自任何分区 (2认同)

Bas*_*san 6

./bin/kafka-console-consumer.sh --bootstrap-server kafka-broker.service-pe-test.consul.c-test.ost.cloud.internal:9093 --max-messages 1 --group basan_PERF_console - -consumer.config config-stage.properties --partition 1 --offset 14677669 --topic order-demandh

这是从特定偏移量一次检索一条消息的方法