Я использую потоки Кафки в своем приложении, у меня есть вопрос о временном окне в статистической функции.
KTable<Windowed<String>, PredictReq> windowedKtable = views.map(new ValueMapper()).groupByKey().windowedBy(TimeWindows.of(TimeUnit.MINUTES.toMillis(1)))
.aggregate(new ADInitializer(), new ADAggregator(),Materialized.with(Serdes.String(), ReqJsonSerde));
KStream<Windowed<String>, Req> filtered = windowedKtable.toStream().transform(new ADTransformerFilter());
KStream<String, String> result = filtered.transform(new ADTransformerTrans());
Я собираю данные в одноминутном окне, а затем преобразую, чтобы получить окончательный результат агрегирования и выполнитьвторое преобразование.
Вот некоторые примеры данных:
msg1: 10:00:00 приходит, msg2: 10:00:20 приходит, msg3: 10:01:10 приходит
Например,
окно запускается с 10:00:00 до 10:01:00.
Я обнаружил, что срок действия окон не истек, пока не появится msg3!(потому что следующее преобразование не выполняется до тех пор, пока не появится msg3.)
Это не то, что я хочу.
Что-то не так в моем тестировании?Если это правда, как это изменить?