Вопрос с собеседования · Брокеры сообщений

Зачем потребителей объединяют в consumer group?

JuniorKafka ConsumerKafka
Ещё спрашивают так:
  • Что такое consumer group?
Коротко

Группа потребителей делит партиции топика между участниками: каждое сообщение обрабатывается одним участником группы.

  • Больше участников — быстрее обработка (до числа партиций)
  • Разные группы получают все сообщения независимо
  • При падении участника его партиции переходят другим

А ещё Группа хранит общий прогресс — offset по партициям

Подробно

Внутри одной группы работает модель конкурирующих потребителей, а разные группы получают собственные копии потока — так одни и те же события могут независимо читать несколько сервисов. Позиция чтения хранится на группу, поэтому перезапуск участника не приводит к повторной обработке всего топика. Важное ограничение: партиция в каждый момент закреплена за одним участником, поэтому потребителей полезно иметь не больше, чем партиций.

Что хотят услышать

  • Распределение партиций и однократная обработка в группе.
  • Независимость разных групп.

Частые ошибки

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

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✗Чтобы каждый участник группы получил собственную копию каждого сообщения
  • ✓Чтобы поделить партиции: каждое сообщение обработает один участник
  • ✗Чтобы ускорить запись сообщений в топик
  • ✗Чтобы объединить несколько топиков в один

Что спросят дальше

  • Что произойдёт при добавлении потребителя в группу?
  • Как хранится позиция чтения группы?

Разбор темы

Связанные вопросы

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования