Что важно знать
- Job, Step, чанки: чтение → обработка → запись пачками.
- Перезапуск с места остановки, пропуск и повтор ошибок.
- Spring Integration — шаблоны корпоративной интеграции.
Пакетная обработка данных и интеграционные шаблоны.
Практика. Реализовать импорт большого CSV в базу на Spring Batch с пропуском ошибочных строк и перезапуском с места падения.
Войдите, чтобы пройти тест: сданный тест отмечает тему пройденной на карте и в ИПР.
Пакетная обработка больших объёмов: импорт и выгрузка файлов, перерасчёты, рассылки — чтение, преобразование и запись порциями с сохранением прогресса и перезапуском с места сбоя.
Полный разборChunk — порция: прочитать N записей по одной, обработать, записать пачкой в одной транзакции. Память ограничена размером чанка, а после сбоя задание продолжается с последнего закоммиченного чанка.
Полный разборSpring Batch — фреймворк для пакетной обработки больших объёмов: Job состоит из Step, шаг обычно chunk-ориентированный — ItemReader → ItemProcessor → ItemWriter пачками с коммитом на каждую пачку.
Полный разборSpring Integration — реализация Enterprise Integration Patterns: сообщения проходят через каналы и конечные точки (маршрутизаторы, преобразователи, фильтры, разделители, агрегаторы), адаптеры подключают внешние системы — файлы, FTP, почту, JMS, Kafka, HTTP.
Полный разборКлиент сам составляет запрос, поэтому риски на бэкенде: N+1 в резолверах, дорогие и глубокие запросы (DoS одним запросом), сложное кэширование (всё через POST на один URL), авторизация на уровне полей.
Полный разборАбстракция над брокерами: обработчик — обычная функция (Function, Consumer, Supplier), а связь с Kafka или RabbitMQ задаётся настройками через binder.
Полный разбор@KafkaListener(topics = "orders", groupId = "billing") объявляет обработчик: цикл poll(), десериализацию, вызов метода и коммит offset берёт на себя контейнер Spring Kafka.
Полный разборAck — сигнал брокеру, что сообщение обработано: до него сообщение считается невыполненным и при обрыве соединения вернётся в очередь другому потребителю.
Полный разборBatch jobs, enterprise integration patterns, Spring Data REST, HATEOAS и GraphQL.
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.