Kafka Streams Custom processing



我需要处理大文件,我们最终可能会并行处理多个文件。

  • 将针对特定于该文件的规则处理特定文件中的每一行。
  • 处理
  • 完成后,我们将根据处理的记录生成输出文件。

我想到的一个选项是推送到代理的每条消息都将具有:行数据 + 要应用的规则 + 一些协关系 ID(类似于该特定文件的标识符)

我计划使用 kafka 流并使用处理器创建一个拓扑,该处理器将获取带有消息处理它并下沉的规则。

但是(我是卡夫卡流的新手,因此可能是错误的):

  • 处理消息的顺序不会是连续的,因为我们在 Tandom 中处理多个文件(这很好,因为我不需要这样做,而且我想保持分离)。但是,我将如何使其达到逻辑闭合,即在我的处理器中,我如何知道文件的所有记录都已处理。
  • 我是否需要在类似 ignite 之类的东西中维护记录(协关系 ID、记录数等)
  • .. 不过我不确定..

我想你可以设置一个键和值记录,可以发送到文件末尾的主题,这将表示文件的关闭。 假设记录有一个唯一的键,例如 -1,表示 eof

最新更新