Насколько глубоко приходилось погружаться в Kafka? Сколько одновременных читателей может быть из топика с 5 партициями в рамках Consumer Group?

Если топик Kafka имеет 5 партиций, оптимально создать ровно 5 консюмеров в одной группе, чтобы каждый консюмер обрабатывал свою партицию без конкуренции.

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

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

Если топик Kafka имеет 5 партиций, оптимально создать ровно 5 консюмеров в одной группе, чтобы каждый консюмер обрабатывал свою партицию без конкуренции.

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

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

Если топик Kafka имеет 5 партиций, оптимально создать ровно 5 консюмеров в одной группе, чтобы каждый консюмер обрабатывал свою партицию без конкуренции.

  • 4 консюмера на 5 партиций: одна партиция останется без консюмера, значит один из консюмеров будет читать по две партиции. Это допустимо, но нагрузка на консюмеров будет распределена неравномерно.
  • 6 консюмеров на 5 партиций: один консюмер останется без партиции и будет простаивать, так как партиция не может быть разделена между несколькими консюмерами в одной группе.

Итог:

  • Количество консюмеров в группе не должно превышать количество партиций, иначе часть консюмеров будет простаивать.
  • Меньшее количество консюмеров, чем партиций, приводит к тому, что некоторые консюмеры обрабатывают несколько партиций.

Пример на Go с использованием sarama:

// Создаем группу с 5 консюмерами для топика с 5 партициями
// Каждый консюмер будет читать свою партицию

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

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

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

Подробнее