Как управлять ограничением скорости в распределенной системе? - PullRequest
0 голосов
/ 02 мая 2019

Вот что делает наш WebApp для контейнеров:

  • Взять в несколько файлов PDF
  • Отправьте их службе распознавания Azure (скорость которой ограничена 10 в секунду)
  • Получить результаты обратно, выполнить некоторую обработку и отправить ответ

Выпуск:

На протяжении всего процесса мы используем многопроцессорную обработку для отправки файлов в службу OCR и получения файлов обратно (в нашем случае OCR Azure является асинхронным). Иногда, когда масштаб достигает, мы склонны пересекать предел 10 RPS.

Одна вещь, которую можно сделать, это добавить задержку. Однако наше WebApp для контейнерного сервиса автоматически масштабируется при загрузке.

Таким образом, чем больше автоматическое масштабирование, тем больше должна быть задержка, так как количество обращений увеличивается из-за увеличения количества экземпляров сервера.

Итак, как можно решить эту проблему?

Язык: Python

...