Встречается на собеседованиях • сегодня

Какие решишь задачу при чтении 20 млн записей из базы данных и отправки в Message Broker

Для обработки 20 млн записей эффективно использовать **пагинацию** и **батчинг**: 1. **Чтение пачками** через `LIMIT-OFFSET` или курсоры, чтобы не грузить все данные в память: ```java int batchSize = 1000; int offset = 0; List batch; do { batch = repository.findBatch(offset, batchSize); sendToBroker(batch); offset += batchSize; } while (!batch.isEmpty()); ``` 2. **Асинхронная отправка** с буферизацией: - Использовать `ExecutorService` для параллельной обработки - Накапливать записи в буфер перед отправкой 3. **Обработка ошибок**: - Реализовать retry механизм для неудачных отправок - Логировать прогресс для возможности восстановления 4. **Оптимизации**: - Выключать ORM-маппинг если возможно - Использовать projection для чтения только нужных полей - Настроить batch-размер исходя из нагрузки на БД и брокер Для Spring Batch можно использовать `JdbcCursorItemReader` + `KafkaItemWriter`.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы