【问题标题】:Is it possible to filter Apache Kafka messages by retention time?是否可以按保留时间过滤 Apache Kafka 消息?
【发布时间】:2017-11-14 15:07:24
【问题描述】:

从抽象的角度来看,Apache Kafka 将数据存储在主题中。消费者可以读取此数据。

我希望有一个(监控)消费者来 greps 特定年龄的数据。监控器应向子系统发送警告,指出记录仍未读取,如果达到保留时间,将被 Kafka 丢弃。

直到现在我都找不到合适的方法。

【问题讨论】:

    标签: apache-kafka retention


    【解决方案1】:

    您可以使用KafkaConsumer.offsetsForTimes() 将消息映射到日期。

    例如,如果您使用昨天的日期调用它并返回偏移量 X,那么任何偏移量小于 X 的消息都比昨天更旧。

    然后您的逻辑可以从您的消费者的当前位置中判断您是否有可能丢弃未处理的记录。

    请注意,目前正在讨论一个 KIP 来公开指标以跟踪它:https://cwiki.apache.org/confluence/display/KAFKA/KIP-223+-+Add+per-topic+min+lead+and+per-partition+lead+metrics+to+KafkaConsumer

    http://kafka.apache.org/10/javadoc/org/apache/kafka/clients/consumer/KafkaConsumer.html#offsetsForTimes-java.util.Map-

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-31
      • 2020-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-14
      • 1970-01-01
      相关资源
      最近更新 更多