Как организовать чтение одного и того же сообщения из Kafka несколькими разными потребителями (fan-out)?

Создайте для каждого независимого обработчика отдельную consumer group. Каждая группа читает topic со своими offsets, поэтому одно событие может обработать несколько разных сервисов.

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

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

Создайте для каждого независимого обработчика отдельную consumer group. Каждая группа читает topic со своими offsets, поэтому одно событие может обработать несколько разных сервисов.

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

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

Создайте для каждого независимого обработчика отдельную consumer group. Каждая группа читает topic со своими offsets, поэтому одно событие может обработать несколько разных сервисов.

Внутри одной группы партиции распределяются между её участниками: это балансировка, а не fan-out каждому consumer. Отдельные group.id нужны, например, сервису уведомлений и сервису аналитики.

Каждая группа имеет собственную скорость и lag. Новому потребителю нужно явно определить стартовую позицию в пределах retention. Kafka не удаляет запись лишь потому, что одна группа её прочитала; доступность истории зависит от политики хранения topic.

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

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

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

Подробнее