【问题标题】:Kafka: Fetch offset is out of range for partition. How to avoid data loss?Kafka:获取偏移量超出分区范围。如何避免数据丢失?
【发布时间】:2020-09-12 13:46:06
【问题描述】:
Fetcher INFO : Fetch offset .... is out of range for partition ..., resetting offset 

试图了解发生这种情况时会发生什么。 如果我们试图读取的偏移量丢失(我假设是因为 kafka GC'ed the offet)并且auto.offset.reset = latest 我们是否会跳过数据到最新的偏移量?

避免数据丢失的安全配置是什么?

【问题讨论】:

  • 这取决于,如果偏移量超出范围,因为请求偏移量已被删除,那么您已经丢失了数据。将偏移重置策略设置为最新将重置为最近生成的记录,因此您也可以为那里的数据丢失敞开心扉。您可能希望最早从头开始读取该策略,或者不希望强制消费者失败,这样您就可以自行决定如何恢复,如果您想避免在这种情况下丢失数据
  • 谢谢@dawsaw,这真的很有帮助。我还在这里stackoverflow.com/questions/58829112/… 找到了关于“auto.offset.reset 如何控制消息消耗”的一个很好的解释

标签: apache-kafka spring-kafka


【解决方案1】:

对我来说,我通过在我的 KafkaConsumer 配置中添加以下行来修复它

properties.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-03
    • 2017-03-09
    • 2018-06-16
    • 1970-01-01
    • 2018-05-30
    • 2013-01-25
    • 2016-05-27
    相关资源
    最近更新 更多