Kafka Streams:重新处理应用程序

时间:2018-10-08 12:42:35

标签: architecture apache-kafka apache-kafka-streams stream-processing

场景:

我有一个完全保留的KafkaStreams应用程序。 它具有一个事件主题和多个输出主题,其中包括Web事件,用户,客户等。 拓扑在其上运行,从而生成会话和实体之间的关系。

我有几个(成千上万个)网站,每个网站都将事件发送到同一主题。 输出主题的消耗将发送到分析数据库。

我有按modulo (website, user) / numPartitions划分的原始事件数据,以便进行良好的数据分发。

问题:

当某个网站的某些元数据发生更改时,我希望能够重新处理该网站(仅该网站)的所有数据。

我可以启动一个单独的应用程序,以重新处理偏移量为0的所有数据,而忽略其他网站的数据,并在完成后使其停止。很好,因为我可以根据网站的规模扩大后处理应用程序的规模,而不会影响常规应用程序。

但是,有一些问题:

  • 常规应用程序如何了解重新处理后生成的新状态?

  • 如何在不停止常规应用程序的情况下同步两个应用程序(即如何安全地停止重新处理)?

0 个答案:

没有答案