Что важно знать
KafkaTemplate,@KafkaListener,DefaultErrorHandler, DLT.- Режимы подтверждения и транзакции Kafka в Spring.
RabbitTemplate,@RabbitListener, ack-режимы, повторы.- Cloud Stream — функции и биндинги, переносимость между брокерами.
Spring Kafka, Spring AMQP и Spring Cloud Stream.
KafkaTemplate, @KafkaListener, DefaultErrorHandler, DLT.RabbitTemplate, @RabbitListener, ack-режимы, повторы.Практика. Реализовать обработку событий заказа на Spring Kafka с повторами, DLT и интеграционным тестом в Testcontainers.
Войдите, чтобы пройти тест: сданный тест отмечает тему пройденной на карте и в ИПР.
@KafkaListener(topics = "orders", groupId = "billing") объявляет обработчик: цикл poll(), десериализацию, вызов метода и коммит offset берёт на себя контейнер Spring Kafka.
Полный разборЗадавать ключ (порядок и партиция по сущности), сериализатор и формат, обрабатывать результат отправки — она асинхронная; для надёжности — acks=all и идемпотентный продюсер (по умолчанию с Kafka 3).
Полный разбор@KafkaListener — метод, который вызывает listener container: контейнер крутит цикл poll() в своих потоках, вызывает метод для записей и коммитит offset по AckMode. По умолчанию BATCH — после обработки всей пачки из poll().
Полный разборAck — сигнал брокеру, что сообщение обработано: до него сообщение считается невыполненным и при обрыве соединения вернётся в очередь другому потребителю.
Полный разборRabbitTemplate — основной способ отправки в Spring AMQP: convertAndSend(exchange, routingKey, payload) с конвертером сообщений (JSON через Jackson2JsonMessageConverter), плюс синхронный request-reply и получение.
Полный разборДва способа: блокирующий — DefaultErrorHandler с BackOff и DeadLetterPublishingRecoverer (повторы на месте, партиция ждёт); неблокирующий — @RetryableTopic: запись уходит в retry-топики с задержкой, а партиция продолжает обрабатываться.
Полный разборBinder abstraction, functional model, bindings, consumer groups, partitioning и trade-offs поверх Kafka/RabbitMQ.
RabbitTemplate, @RabbitListener, exchanges, bindings, manual ack, retries, DLQ и prefetch.
KafkaTemplate, @KafkaListener, listener containers, offset ack, error handling, retries и DLT.
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.