[имя] спросил: спроектируй пайплайн обработки большого числа URL одного сервиса: нужно максимально эффективно скачать HTML, извлечь нужные данные и сохранить их, не превышая лимит в 1000 одновременных запросов. Источник URL может быть файлом, БД, Kafka-топиком или внешним API.

Постройте потоковый конвейер с адаптером источника, ограниченной очередью, пулом загрузчиков, парсерами и пакетной записью. Лимит 1000 должен действовать на все активные запросы вместе.

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

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

Постройте потоковый конвейер с адаптером источника, ограниченной очередью, пулом загрузчиков, парсерами и пакетной записью. Лимит 1000 должен действовать на все активные запросы вместе.

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

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

Постройте потоковый конвейер с адаптером источника, ограниченной очередью, пулом загрузчиков, парсерами и пакетной записью. Лимит 1000 должен действовать на все активные запросы вместе.

Источник выдаёт URL порциями; bounded queue создаёт backpressure. Загрузчики переиспользуют HTTP-соединения, ограничивают время и размер ответа, учитывают rate limit сервиса и Retry-After. Лимит одновременности не равен допустимому RPS. При нескольких процессах квоты распределяют либо координируют глобально, включая retries. CPU-тяжёлый парсинг выносят из event loop, результаты записывают идемпотентно по устойчивому ключу. Offset/checkpoint источника подтверждают после сохранения или надёжной передачи задания. Нужны дедупликация, очередь неисправимых ошибок и контроль lag. Пользовательские URL требуют SSRF-защиты.

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

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

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

Подробнее