Kafka Streams WindowStore Выбор заказа записи - PullRequest
0 голосов
/ 10 мая 2019

Документация Kafka Streams 2.2.0 для метода WindowStore и ReadOnlyWindowStore fetch(K key, Instant from, Instant to) гласит:

Для каждого ключа итератор гарантирует упорядочение окон, начиная с самых старых /самое раннее доступное окно для самого нового / последнего окна.

Ни один из других методов выборки не устанавливает это (кроме устаревшего fetch(K key, long from, long to)), но предлагают ли они ту же гарантию?

Кроме того, есть ли гарантия на порядок записей в данном окне?Или это вплоть до реализации (как я предполагаю) базовой коллекции хеширования и обработки возможных коллизий хеша?

Следует также отметить, что мы создали WindowStore с retainDuplicates(), установленным на true.Таким образом, один ключ будет иметь несколько записей в окне.Если мы не используем это неправильно;я думаю, это был бы другой вопрос ...

1 Ответ

1 голос
/ 11 мая 2019

Другие методы не имеют гарантий упорядочения, поскольку порядок зависит от порядка следования байтов в сериализованных ключах.Трудно рассуждать об этом порядке для потоков Kafka, потому что сериализаторы предоставляются пользователем.

Я также должен отметить, что мы создали WindowStore с retainDuplicates (), установленным в true.Таким образом, один ключ будет иметь несколько записей в окне.Если мы не используем это неправильно;который, я думаю, был бы другим вопросом ...

Вы используете это неправильно :) - вы можете хранить разные ключи для одного и того же окна по умолчанию.Если вы включите retainDuplicates(), вы можете хранить одну и ту же клавишу несколько раз для одного и того же окна.

...