首页 > 解决方案 > 备用任务未将更新写入 .checkpoint 文件

问题描述

我有一个 Kafka Streams 应用程序,该应用程序配置为为每个任务创建 1 个备用副本。我有两个正在运行的应用程序实例。当应用程序启动时,应用程序会为其负责的每个分区写入 .checkpoint 文件。它为活动和备用任务拥有的分区写入这些文件。

当发送要由应用程序处理的新 Kafka 事件时,包含该分区的活动任务的实例会更新 .checkpoint 文件中的偏移量。但是,第二个实例上的备用任务的 .checkpoint 文件永远不会更新。它保持在旧的偏移量。

我相信这导致我们在重新平衡时看到 OffsetOutOfRangeEceptions 被抛出,这导致任务被拆除并从头开始创建。

  1. 我是否认为应该为备用和活动任务中分区写入偏移量?
  2. 这是否表明我的备用任务没有消耗,或者它可能纯粹无法写入偏移量?
  3. 任何想法可能导致这种行为?

流版本:2.3.1

标签: apache-kafkaapache-kafka-streams

解决方案


此问题已在 Kafka 2.4.0 中修复,解决了以下错误问题。apache.org/jira/browse/KAFKA-8755

注意:这个问题看起来只影响配置了 OPTIMIZE="all" 的应用程序


推荐阅读