У меня есть приложение-функция Azure, запущенное HttpRequest. Функция app считывает запрос, помещает одну копию в таблицу хранения для безопасного хранения и отправляет другую копию в очередь для дальнейшей обработки другим элементом системы. У меня есть клиент, выполняющий тест ApacheBench, который сообщает о 148 обработанных запросах в секунду. Такой скорости обработки будет недостаточно для нашей ожидаемой нагрузки.
Мое понимание функциональных приложений состоит в том, что они должны порождать столько экземпляров, сколько необходимо для обработки отправленной им нагрузки. Но это функциональное приложение может масштабироваться недостаточно быстро, поскольку оно обрабатывает только 148 запросов в секунду. Мне нужно, чтобы обрабатывать не менее 200 запросов в секунду.
Хотя я не уверен на 100%, что проблема на моем конце. Анализируя производительность моего функционального приложения, я обнаружил МНОГО 429 ошибок. То, что я нашел в Интернете, в частности https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-request-limits,, позволяет предположить, что эти ошибки могут быть вызваны слишком большим количеством запросов, отправляемых с одного IP-адреса. Могут ли несколько нагрузочных тестов ApacheBench 10K и 20K в течение одного дня вызвать ошибку 429?
Однако, если это не так, если проблема связана с моим функциональным приложением, как я могу заставить мое функциональное приложение быстрее создавать больше экземпляров? Я предполагаю, что это способ увеличить пропускную способность в секунду. Но я все еще очень новичок в работе с функциональными приложениями, поэтому, если есть другой способ, я бы с радостью приветствовал ваш вклад.
Может быть, план обслуживания приложений Premium, который находится в публичном предварительном просмотре, будет обрабатывать большую пропускную способность? Я думал о том, чтобы переключиться на это и провести быстрый тест, но не уверен, смогу ли я вернуться обратно?
Может быть, EventHub - это то, что мне нужно исследовать? Может ли это увеличить мою видимую пропускную способность, перехватывая больше запросов и удерживая их, пока приложение-функция не сможет их принять и обработать?
Заранее благодарим за любую помощь, которую вы можете оказать.