当前位置:  开发笔记 > 开发工具 > 正文

Kafka流抑制会话窗口聚合

如何解决《Kafka流抑制会话窗口聚合》经验,为你挑选了1个好方法。

我已经在Kafka流应用程序中编写了以下代码:

KGroupedStream groupedStream = stream.groupByKey();
groupedStream.windowedBy(
SessionWindows.with(Duration.ofSeconds(3)).grace(Duration.ofSeconds(3)))
    .aggregate(() -> {...})
    .suppress(Suppressed.untilWindowCloses(unbounded()))
    .toStream()...

关闭窗口后,应该(如果我正确理解的话)每个键都发出记录。不知何故,行为如下:

该流不会发出第一条记录,仅使用不同的Key才将其转发到第二条记录之后,然后仅在第三条记录之后发出第二条记录,依此类推。

我已经尝试使用“ exactly_once”使用多个StreamConfigs,并且无论是否具有缓存,这种现象仍然存在。

在此先感谢您的帮助 !



1> Matthias J. ..:

那是预期的行为。注意,这suppress()是基于事件时间的。因此,只要没有新数据到达,时间就不能提前,因此更早地收回记录将是错误的,因为不能保证下一条记录可能属于当前窗口。

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有