Чтение сообщений за определенную отметку времени в кафке - PullRequest
1 голос
/ 11 марта 2019

Я хочу прочитать все сообщения, начиная с определенного времени в кафке. Скажем, я хочу прочитать все сообщения от 0600 до 0800

Запрос сообщений между двумя временными метками от Кафки предлагает решение как использование offsetsForTimes.

Проблема с этим решением: Если, скажем, мой потребитель включен ежедневно в 13:00. Потребитель не прочитал бы ни одного сообщения в тот день, что фактически означает, что смещение не было зафиксировано в / после 06:00, что означает offsetsForTimes (<имя-раздела>, <0600 для этого дня в миллис> ) вернет ноль.

Можно ли как-нибудь прочитать сообщение, которое было опубликовано в очереди kafka в определенное время, независимо от смещений?

1 Ответ

0 голосов
/ 11 марта 2019

offsetsForTimes() возвращает смещения сообщений, которые были созданы за запрошенное время. Он работает независимо от того, были ли зафиксированы смещения или нет, потому что смещения напрямую выбираются из журналов разделов.

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

...