Я новичок в Kafka, но мне нужно внедрить логи c, чтобы потребитель мог потреблять из определенной топи c на основе метки времени. Другой вариант использования также для меня, чтобы иметь возможность потреблять для определенного временного диапазона (например, с 10:00 до 10:20). Диапазон всегда будет делиться на 5 минут - то есть мне не нужно будет потреблять, например, с 10:00 до 10:04). Логика c Я думал, что будет следующим:
- создать таблицу, в которой я храню метку времени, и Kafka messageId (timestamp | id)
- создать консоль \ службу, которая выполняет каждые 5 минут:
- Получить все разделы для топи c
- Запросить все разделы для минимального значения смещения (начальная точка)
- Сохранить смещение и метку времени в таблице
Получить все разделы для топи c
Теперь, если все в порядке, у меня должно быть что-то подобное в таблице:
10:00 | 0
10:05 | 100
10:10 | 200
HH: mm | (some number)
Теперь, имея это, я мог бы начать потребителя в любое время и, зная смещения, я мог бы потреблять именно то, что мне нужно. Это выглядит правильно, или я где-то сделал ошибку? Или, может быть, есть лучший способ достижения требуемого результата? Любые мысли или предложения будут высоко оценены.
PS: один из моих коллег предложил использовать раздел и работать с каждым разделом отдельно ... Это означает, что если я получил топи c и количество реплик, например, 5 - тогда мне нужно будет сохранить смещения 5 раз для моей топи c для каждого интервала (один раз на раздел). И тогда потребитель также должен будет учитывать разделы и использовать их в зависимости от того, какие смещения я получил для каждого раздела. Но это как бы включает в себя дополнительную сложность, которую я пытаюсь избежать ...
Заранее спасибо!
BR, Майк