迭代地更改 Kafka Stream SessionWindows 的持续时间

Changing the duration of a Kafka Stream SessionWindows iteratively

假设我有一个带有 SessioWindowing 的 Kafka 流,例如:

windowedBy(SessionWindows.with(inactivity_time).until(aWeek))

是否可以根据以下记录的到达迭代地更改window的不活动时间间隔

比如我最初用第一条记录定义了我的 inactivity_time=360000,如果相同键的第二条记录在 inactivity_time/2 之后没有到达,是否可以修改这个值?

不幸的是,内置功能无法做到这一点。

这样做需要您自己实现此自定义功能,例如使用 Kafka Streams 的处理器 API(生成的 Processors/Transformers 然后您可以插入 Kafka Streams 的 DSL)。