Привет всем, у меня есть вопрос о TimestampExtractor и Kafka Streams ....
В нашем приложении есть возможность получать неупорядоченные события, поэтому я предпочитаю упорядочивать события в зависимости от бизнес-даты внутри полезной нагрузки, а не по моменту времени, который они помещают в тему.
Для этой цели я запрограммировал пользовательский TimestampExtractor, чтобы иметь возможность извлекать временную метку из полезной нагрузки. Все, что я сказал здесь, работало отлично, но когда я построил KTable для этой темы, я обнаружил, что событие, которое я получаю не по порядку (с точки зрения бизнеса, это не последнее событие, но оно получено в конце), отображается как последнее состояние объекта, в то время как ConsumerRecord имеет метку времени из полезной нагрузки.
Я не знаю, может быть, я ошибался, полагая, что Kafka Stream исправит эту неисправную проблему с помощью TimestampExtractor.
Затем во время отладки я увидел, что если TimestampExtractor возвращает -1 в результате, Kafka Streams игнорирует сообщение, а TimestampExtractor также доставляет метку времени последнего принятого события, поэтому я создаю логику, которая реализует следующую проверку (payloadTimestamp ‹previousTimestamp) возвращает -1 , что соответствует моей логике, но я не уверен, плыву я по опасным водам или нет.
Могу ли я иметь дело с подобной логикой или какие другие способы существуют для работы с неупорядоченными событиями в потоках Kafka ....
Спасибо за ответы ..