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