Кафка - сообщения, использующие метку времени - PullRequest
1 голос
/ 18 февраля 2020

Я новичок в Kafka, но мне нужно внедрить логи c, чтобы потребитель мог потреблять из определенной топи c на основе метки времени. Другой вариант использования также для меня, чтобы иметь возможность потреблять для определенного временного диапазона (например, с 10:00 до 10:20). Диапазон всегда будет делиться на 5 минут - то есть мне не нужно будет потреблять, например, с 10:00 до 10:04). Логика c Я думал, что будет следующим:

  1. создать таблицу, в которой я храню метку времени, и Kafka messageId (timestamp | id)
  2. создать консоль \ службу, которая выполняет каждые 5 минут:
  3. Получить все разделы для топи c
  4. Запросить все разделы для минимального значения смещения (начальная точка)
  5. Сохранить смещение и метку времени в таблице

Получить все разделы для топи c

Теперь, если все в порядке, у меня должно быть что-то подобное в таблице:

10:00     | 0
10:05     | 100
10:10     | 200
HH: mm     | (some number)

Теперь, имея это, я мог бы начать потребителя в любое время и, зная смещения, я мог бы потреблять именно то, что мне нужно. Это выглядит правильно, или я где-то сделал ошибку? Или, может быть, есть лучший способ достижения требуемого результата? Любые мысли или предложения будут высоко оценены.

PS: один из моих коллег предложил использовать раздел и работать с каждым разделом отдельно ... Это означает, что если я получил топи c и количество реплик, например, 5 - тогда мне нужно будет сохранить смещения 5 раз для моей топи c для каждого интервала (один раз на раздел). И тогда потребитель также должен будет учитывать разделы и использовать их в зависимости от того, какие смещения я получил для каждого раздела. Но это как бы включает в себя дополнительную сложность, которую я пытаюсь избежать ...

Заранее спасибо!

BR, Майк

1 Ответ

0 голосов
/ 18 февраля 2020

Нет необходимости в таблицах.

Вы можете использовать метод поиска экземпляра Consumer, чтобы переместить все разделы в смещение, определенное этим разделом.

Разделение может работать ... 12 разделов с 5-минутными интервалами сообщения

Я не думаю, что репликация решает вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...