У меня есть топология Kafka Streams, в которой хранилище сеансов создается посредством агрегации DSL.(Все темы здесь разделены на части).
Позже я использую это хранилище из transformValues
для другой темы (orders
), запрашивая это хранилище, чтобы получить вывод, похожий на соединение, содержащий один заказ иего сеансы.
Тем не менее, хранилище выдает задержки при вычислениях, когда наблюдается некоторый всплеск громкости, а в теме orders
- нет.Таким образом, даже если события достигают системы по порядку, order
не найдет там свой sessions
.
Таким образом, когда приходит заказ, в магазине иногда еще не заполняется предыдущий, а необработанные данные, поэтому при поиске в магазине он не находит никаких записей.
Я вижу решение объединения order
'KStream
с KStream
версиейхранилище сеансов, чтобы иметь возможность действовать как при поступлении order
, так и session
, генерируя новые версии.
Но это добавляет сложности, а также IIRC объединение создаст дополнительную оконную тему(Я уже использую это хранилище сеансов в других местах, поэтому мне все еще нужно его иметь).
Существуют ли другие стратегии для ее решения и какие компромиссы должны быть сделаны?