Kafka Streams定制加工

时间:2018-03-16 06:24:24

标签: spring apache-kafka apache-kafka-streams

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

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

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

我计划使用kafka流并使用处理器创建拓扑,该处理器将获取带有消息处理规则的规则并将其接收。

然而(我是kafka溪流的新手因此可能是错的):

  • 处理消息的顺序不会是顺序的,因为我们正在处理Tandom中的多个文件(这很好,因为我没有要求这样做,而且我想让它保持解耦) 。但接下来我将如何将其带入逻辑闭包,即在我的处理器中如何才能知道文件的所有记录都已处理完毕。
  • 我是否需要保存记录(合作关系ID,记录数量等),如点燃......我不确定这一点..

1 个答案:

答案 0 :(得分:1)

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