应用程序仅针对 1 个输入生成 2 条消息

问题描述 投票:0回答:1

我正在尝试调试我们的生产 Kafka Streams 应用程序中的问题。 (简化的)拓扑看起来像这样

builder.stream("input").groupByKey().reduce(
  (agg, val) -> "bar",
  Materialized.as("saved_store")
);

99% 关于“输入”主题的传入消息似乎工作正常,但我发现有些情况并非如此。我在“输入”

 中看到针对特定键 
123

的一条消息
"123": "foo"

但是当我查看“saved_store”正在实现的私有 Kafka 主题时,那里有两条消息,而且它们看起来都像

"123": "bar"

这可能是什么原因造成的?我希望保存的存储只有一条消息并且值为“foo”,因为第一次看到该键时不应该调用减速器。

apache-kafka apache-kafka-streams reduce
1个回答
0
投票

看看“saved_store”具体化的私人 Kafka 主题,

这是查看商店的错误方式。压缩主题返回商店。在日志清理线程运行之前,压缩主题不能保证开放段中的唯一键

© www.soinside.com 2019 - 2024. All rights reserved.