在 Kafka 流中设置 Window[Hopping, Tumbling..etc] 并行度

Setting Window[Hopping, Tumbling..etc] Parallelism in Kafka Streams

我正在写 Kafka Streams 中的 Hopping Window 代码,其中 minMaxCalculator() 计算流中的最小值和最大值,一旦流按键分组。

 KTable<Windowed<String>, aggrTest> WinMinMax = Records.groupByKey().aggregate(new aggrTestInitilizer(), 
        new minMaxCalculator()
        , TimeWindows.of(TimeUnit.SECONDS.toMillis(5)).advanceBy(TimeUnit.SECONDS.toMillis(1)),aggrMessageSerde,"aggr-test");

一旦我按键分组,即使只有一个 kafka 分区,我也想并行处理为 中的所有键生成的 windows。我们应该怎么做?我在哪里可以设置这个对应于window的并行度?

并行度基于输入分区,不能与它们不同。因此,没有您可以设置的参数。

但是,您可以创建一个具有所需分区数的主题,并使用它进行手动重新分区 through():

stream.through("multi-partition-topic").groupByKey()...

查看文档了解更多详情: