只提交给Kafka Streams中的输出主题

时间:2018-11-27 11:02:07

标签: apache-kafka apache-kafka-streams

我想构建一个获取类型为A的消息的Kafka Streams应用程序。 对于每个A输入,应用程序都需要产生{strong>几个批量输出(一个常见的flatMap操作)。

我正在寻求一种实现方式,使应用程序在每次批量处理后都会提交到输出主题(我称此“ subcommitting” ),并具有其 subcommits的状态(这样它可以恢复到失败时未执行的 subcommits )。

我希望应用程序仅在完成全部批量提交后才进行常规的完全提交。

处理器API似乎可以帮助我,因为我可以管理子提交的状态。

所以

  1. 这种设计有意义吗? (搜索时没有看到这样的东西,所以我有点可疑)
  2. 如何以编程方式提交? (即仅致力于输出主题)

1 个答案:

答案 0 :(得分:1)

Kafka中的提交偏移量基于输入消息。因此,如果您只有一条输入记录,即flatMap成多条输出消息,则无法将提交分成多条。您提交了输入消息,还是没有提交。

在Kafka中没有提交输出消息的概念。