Получить доступ

Что делает аннотация @KafkaListener?

JuniorSpring KafkaKafka
Ещё спрашивают так:
  • Как читать сообщения Kafka в Spring?
Коротко

@KafkaListener(topics = "orders", groupId = "billing") объявляет обработчик: цикл poll(), десериализацию, вызов метода и коммит offset берёт на себя контейнер Spring Kafka.

  • Коммит — после обработки (по умолчанию после пачки)
  • Ошибки — DefaultErrorHandler: повторы, затем DLT
  • concurrency — число потребителей

А ещё Обработчик должен быть идемпотентным

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

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

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

  • Что делает аннотация и контейнер.

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

  • Считать, что аннотация занимается и отправкой сообщений.
  • Не учитывать повторную доставку при ошибке обработки.

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

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

Показать варианты и ответ
  • ✓Помечает метод как обработчик сообщений из указанного топика — фреймворк сам поднимает потребителя и вызывает метод на каждое сообщение
  • ✗Отправляет сообщения в указанный топик
  • ✗Создаёт топик при старте приложения
  • ✗Регистрирует схему сообщения в реестре

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

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

Разбор темы

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

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем