【问题标题】:kafka search text in topic主题中的kafka搜索文本
【发布时间】:2019-07-06 06:14:07
【问题描述】:

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

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

【问题讨论】:

标签: apache-kafka kafka-consumer-api


【解决方案1】:

有没有有效的方法?

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

如果你这样做了,那么你可以计算一个 Murmur2 散列并找到分区号,然后只扫描那个分区号,仍然使用 --partition 进行搜索

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

你可以给--max-messages

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

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

【讨论】:

    【解决方案2】:

    有没有有效的方法?

    是的。您的解决方案是快速而肮脏的解决方案。如果要过滤数据,请使用 Streams API 并在另一个主题上编写过滤信息。 https://kafka.apache.org/documentation/streams/

    【讨论】:

    • 这与我的快速而肮脏的解决方案有何不同?
    • 我认为问题不是要真正编写 Java 代码。仅从 CLI 中查找事件
    • kafka 不仅仅是他的高级 API。完全没有必要为此创建一个新主题。
    • 好吧,我认为 OP 是在定期解决主题之外的问题。谁能帮我stackoverflow.com/questions/54674867/…
    猜你喜欢
    • 1970-01-01
    • 2020-09-27
    • 1970-01-01
    • 2019-07-08
    • 1970-01-01
    • 2020-10-28
    • 1970-01-01
    • 2016-08-07
    • 2019-04-18
    相关资源
    最近更新 更多