Поставьте обращения в очередь и выпускайте их общим ограничителем не чаще разрешённой частоты. Десять одновременно принятых запросов нельзя честно обслужить внешним сервисом за одну секунду.
Как организовать работу, если внешняя интеграция разрешает только 1 запрос в секунду, а к вам приходят 10 запросов?
Поставьте обращения в очередь и выпускайте их общим ограничителем не чаще разрешённой частоты. Десять одновременно принятых запросов нельзя честно обслужить внешним сервисом за одну секунду.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Поставьте обращения в очередь и выпускайте их общим ограничителем не чаще разрешённой частоты. Десять одновременно принятых запросов нельзя честно обслужить внешним сервисом за одну секунду.
Уточните, лимит относится к аккаунту, IP или endpoint и допускает ли burst. Для строгого интервала в секунду не используйте bucket с запасом на десять мгновенных вызовов. Несколько workers должны делить единый limiter. Клиенту можно вернуть 202 с ID задачи и статусом; задайте максимальную очередь, срок ожидания и backpressure. Повторы после 429 учитывают Retry-After и тот же лимит. Кеш и объединение одинаковых запросов уменьшают нагрузку.