Зачем потребителей объединяют в consumer group?
- Что такое consumer group?
Группа потребителей делит партиции топика между участниками: каждое сообщение обрабатывается одним участником группы.
- Больше участников — быстрее обработка (до числа партиций)
- Разные группы получают все сообщения независимо
- При падении участника его партиции переходят другим
А ещё Группа хранит общий прогресс — offset по партициям
Подробно
Внутри одной группы работает модель конкурирующих потребителей, а разные группы получают собственные копии потока — так одни и те же события могут независимо читать несколько сервисов. Позиция чтения хранится на группу, поэтому перезапуск участника не приводит к повторной обработке всего топика. Важное ограничение: партиция в каждый момент закреплена за одним участником, поэтому потребителей полезно иметь не больше, чем партиций.
Что хотят услышать
- Распределение партиций и однократная обработка в группе.
- Независимость разных групп.
Частые ошибки
- Ожидать, что все участники одной группы получат копию сообщения.
- Запускать больше потребителей, чем есть партиций.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✗Чтобы каждый участник группы получил собственную копию каждого сообщения
- ✓Чтобы поделить партиции: каждое сообщение обработает один участник
- ✗Чтобы ускорить запись сообщений в топик
- ✗Чтобы объединить несколько топиков в один
Что спросят дальше
- Что произойдёт при добавлении потребителя в группу?
- Как хранится позиция чтения группы?
Разбор темы
- Kafka Consumer и consumer group
Группа и распределение партиций, poll-цикл, heartbeat и таймауты, модели commit offset, ребаланс и роль идемпотентности.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.