Есть топик с 10 партициями. Сколько нужно контейнеров (консьюмеров), чтобы читать все партиции?

Для чтения всех 10 партиций топика в Kafka нужно минимум 10 консьюмеров, если каждый консьюмер запускается в отдельном контейнере и каждый консьюмер читает только одну партицию.

Короткий ответ

Что ответить на собеседовании

Для чтения всех 10 партиций топика в Kafka нужно минимум 10 консьюмеров, если каждый консьюмер запускается в отдельном контейнере и каждый консьюмер читает только одну партицию.

Подробный разбор

Ответ с пояснениями

Для чтения всех 10 партиций топика в Kafka нужно минимум 10 консьюмеров, если каждый консьюмер запускается в отдельном контейнере и каждый консьюмер читает только одну партицию.

Однако, если консьюмеры объединены в одну группу (consumer group), то количество консьюмеров может быть меньше или равно количеству партиций. В этом случае партиции распределяются между консьюмерами внутри группы, но одна партиция не может быть прочитана одновременно двумя консьюмерами из одной группы.

Итого:

  • Минимум 1 консьюмер (если один консьюмер читает все партиции последовательно).
  • Оптимально — не больше 10 консьюмеров, чтобы не было простаивающих консьюмеров.

Если задача — параллельно читать все партиции, то нужно ровно 10 консьюмеров (в 10 контейнерах), чтобы каждый обрабатывал свою партицию.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее