下面是使用Kafka流的简单会话窗口:
stream
.groupBy()
.windowedBy(SessionWindows.with(Duration.ofMinutes(30)).grace(Duration.ofMinutes(0)))
.aggregate(...) // implementation of aggregate function使用以下代码,我们可以配置状态存储:
Materialized
.as(Stores.persistentSessionStore(storeName, Duration.ofHours(2))
.withCachingEnabled()
.withLoggingEnabled()
.withKeySerde(keySerde)
.withValueSerde(valueSerde)文档声明:
请注意,保留期必须至少足够长,以包含窗口数据的整个生命周期,从窗口开始到窗口结束,以及整个宽限期。
我们不申请宽限期。但请考虑以下情况:会话窗口在保留期之前结束,而不活动间隙在保留期之后结束。我想知道,是否存在会话数据丢失的可能性?清理的力度有多大?
发布于 2019-10-20 01:14:26
https://stackoverflow.com/questions/58426767
复制相似问题