首页 > 解决方案 > 主题中的kafka搜索文本

问题描述

我想搜索 kafka 主题中的特定消息,我找到的唯一解决方案是使用grep

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning |grep 'world\|hello'
  1. 有没有一种有效的方法来做到这一点?
  2. 有没有办法可以用特定的偏移量来限制消费者,这意味着从头开始读取直到达到特定的偏移量?

标签: apache-kafkakafka-consumer-api

解决方案


有没有一种有效的方法来做到这一点?

如果您没有消息密钥,则没有。

如果你这样做了,那么你可以计算一个 Murmur2 哈希并找到分区号,然后只扫描那个,仍然在 grepping--partition

有没有办法可以用特定的偏移量来限制消费者,这意味着从头开始读取直到达到特定的偏移量?

你可以给--max-messages

如果您不想总是从头开始,请添加--group并使用 max messages 参数继续运行相同的命令。这将允许使用相同的消费者组,并在完成后提交偏移量

您还可以手动提交偏移量以从使用kafka-consumer-groups命令开始


推荐阅读