【问题标题】:Kafka Commit Gaps卡夫卡提交差距
【发布时间】:2021-05-28 12:44:10
【问题描述】:

我正在尝试实现一个循环,我们将在循环中处理一批消息,成功处理后我们将提交消息的偏移量,但是对于以下情况,我无法找到任何有形的输入。

读取:1,2,3,4,5....10 我将依次循环处理它们,如果消息处理成功则只提交偏移量。

所以想象 1,2 成功但 3 失败,4,5 成功,7,8 失败......如果我只提交偏移量 1,2,4,5 未提交的偏移量会发生什么? 3,7,8...

有什么想法会再读一遍吗?

【问题讨论】:

    标签: apache-kafka


    【解决方案1】:

    如果您的最大承诺偏移量是 5,并且您停止了消费者(或它崩溃),那么您的消费者下次运行时将从偏移量 6 开始读取。 Kafka 没有提供一种机制来处理已提交偏移量之间未提交的单个偏移量。换句话说,Kafka 不知道任何提交间隙。当偏移量 5 被提交时,Kafka 会将此解释为您的消费者已经消费了所有条消息,直到偏移量 5。

    为了解决您描述的问题,您的应用程序应该能够捕获失败的消息并将它们发送到其他地方(例如另一个 Kafka 主题)。这样您就可以分析有问题的消息,以防万一将它们重新摄取到您的应用程序中。

    【讨论】:

      猜你喜欢
      • 2016-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-15
      • 2018-09-15
      • 2014-10-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多