我已经在Kafka流应用程序中编写了这段代码:
KGroupedStream<String, foo> groupedStream = stream.groupByKey();
groupedStream.windowedBy(
SessionWindows.with(Duration.ofSeconds(3)).grace(Duration.ofSeconds(3)))
.aggregate(() -> {...})
.suppress(Suppressed.untilWindowCloses(unbounded()))
.toStream()...
如果我理解正确,应该在窗口关闭后按键发出记录。但行为如下:
流不会发出第一条记录,只有在第二个记录之后才将其转发,即使有不同的键,然后第二个记录仅在第三个记录之后发出,依此类推。
我尝试了多个StreamConfigs,包括“exactly_once”以及使用或不使用缓存,但这种行为仍然存在。
提前感谢您的帮助!
TimeWindows
而不是SessionWindows
。 - Vasyl Sarzhynskyi