【发布时间】:2026-02-05 00:40:01
【问题描述】:
我感觉标点符号能够访问本地存储数据,而 Java KafkaStreams 库正在重建它以重播更改日志主题中的项目
让我们描述一下我们的场景:我有一个 KafkaStreams 应用程序 A(用 Java 编写),我们正在从一个主题“传入主题”中消费,我们将一些对象放入本地存储中,使用时间戳作为键加上一些唯一的 id,例如:
键-> 201906122345_ds243132eddsfs 值 -> 对象
然后我们有一个标点符号从这家商店读取任何一分钟,检索从“”到现在表示为 yyyymmddhhMM 的一系列项目(所以 201906122345)。我们只想处理这些数据一次。它们被读取,从存储中删除并转发到另一个主题“中间主题”,在那里它们被另一个处理器使用和处理。 我们注意到,当我们向应用程序 A 添加节点时,或者当 Kafka 在节点之间重新平衡分区时,我们正在重新处理旧条目。我的猜测是标点符号正在访问本地商店,而 KafkaStreams 库正在重建它。只有在重建本地商店时,我才能够找到很少的这种情况。
问题:这是预期的行为吗?我是否以错误的方式使用本地商店?在重建本地商店时,我能否以某种方式配置不同的行为,使标点符号不起作用?
【问题讨论】: