KafkStreams:在窗口期间丢弃消息

时间:2019-06-18 14:15:38

标签: apache-kafka-streams

需要在时间窗口内丢弃重复的消息。消息不断传入。贝娄是代码的一部分。

 kStream.groupByKey(Grouped.with(Serdes.String(), Serdes.String()))
            .windowedBy(TimeWindows.of(Duration.ofSeconds(15)))
             .reduce((k,m) -> m)
             .suppress(Suppressed.untilWindowCloses(Suppressed.BufferConfig.unbounded()))
             .toStream()
             .foreach((k, v) -> doSomeProcess(k,v));

我在这里做错了。我没有看到对doSomeProcess方法的任何调用。消息进入。

1 个答案:

答案 0 :(得分:1)

事实证明,此功能需要为Windows添加“宽限期”参数”来自https://cwiki.apache.org/confluence/display/KAFKA/KIP-328%3A+Ability+to+suppress+updates+for+KTables .... .windowedBy(TimeWindows.of(Duration.ofSeconds(15))。grace(Duration.ofSeconds(5))) ....

此问题已解决。