Как добиться наилучшего и меньшего времени выполнения запроса с помощью Azure Приложения для запросов функций (C#) из Azure Поиск - PullRequest
0 голосов
/ 09 апреля 2020

Я использую Azure Функции для запроса данных из поиска Azure (мультииндексы для нескольких стран) . В настоящее время я просто создаю объект SearchIndexClient внутри , используя оператор , передавая QueryKey, ServiceName и IndexName и запрашивая данные из Azure Поиск. Таким образом, для каждого запроса создается объект SearchIndexClient , выполняется запрос, а затем объект удаляется. Это правильный подход с точки зрения производительности?

Если нет, то какие улучшения / лучшие практики можно использовать в приложении для повышения производительности в производственной среде. Нужно ли использовать какой-либо шаблон проектирования для создания объекта?

Я заметил, что в настоящее время выполнение запроса занимает больше времени, чем создание объекта.

Любое предложение будет оценено. Заранее спасибо !!!

1 Ответ

0 голосов
/ 20 апреля 2020

Вы должны попытаться повторно использовать SearchIndexClient экземпляров, где это возможно. См. этот связанный вопрос для деталей. Я не уверен, как выполнить sh в функции Azure.

Даже если создание клиента является относительно небольшой частью вашей сквозной задержки, вам все равно следует избегать создания слишком многие из них одновременно. Каждый клиент создает HttpClient под капотом. Создание слишком большого числа HTTP-клиентов может привести к исчерпанию пула соединений TCP, что может повлиять на масштабируемость вашего приложения.

Более широкое обсуждение проблем производительности см. В этой статье .

...