Вопрос:
Как я могу случайно выбрать старый кусок сообщений с заданным диапазоном определения [раздел, начальное смещение, конечное смещение]. Надеемся, что диапазон от нескольких разделов одновременно (один диапазон для каждого раздела). Это необходимо поддерживать и в параллельной среде.
Мои идеи для решения до сих пор
Я предполагаю, что могу использовать пул потребителей для параллелизма, и для каждой выборки используйте Consumer.seek
и Consumer.poll
с max.poll.records
. Но это кажется неправильным. Не обещаю, что я получу точно такой же кусок, например, в случае, когда сообщение будет удалено (используя log compact). В целом этот метод поиска + опроса не выглядит подходящим для одноразовой случайной выборки.
Мой вариант использования:
Как и обычный потребитель, мой читает 10 МБ фрагментов сообщений и обрабатывает их.
Чтобы обработать этот кусок, я помещаю 3-20 заданий в разные темы, в какой-то рабочий процесс.
Теперь моя цель состоит в том, чтобы не вставлять один и тот же кусок в другие темы снова и снова. Мне кажется, что лучше ссылаться на этот кусок. например Тема X / раздел Y, начальное смещение, конечное смещение. Затем при обработке заданий он снова получит точный кусок.