Многопоточное приложение веб-API - PullRequest
0 голосов
/ 24 декабря 2018

У меня есть приложение C # Web API с реагирующим интерфейсом.Большинство страниц интерфейса вызывают несколько API-интерфейсов под нагрузкой.Производительность и время отклика каждого отдельного API достаточно быстры и достаточно хороши для моего приложения.Однако, когда я тестирую приложение, время загрузки страницы увеличивается и увеличивается, поскольку я добавляю больше пользователей.Я предполагаю, что это потому, что поступает больше запросов, чем может обработать IIS, например, все его потоки заняты, поэтому обработка каждого запроса занимает больше времени.

Учитывая это, кажется, что решение заключается в сокращении количествапоступающие запросы. Я могу сделать это, объединив вызовы загрузки страницы для каждой страницы в отдельные вызовы, а затем получить все необходимые данные в одном.Это будет означать, что каждый отдельный фрагмент данных будет получен синхронно, что снова замедлит время ответа.Учитывая это, кажется, что было бы лучше, чтобы многопоточность объединила вызовы API, чтобы весь запрос занимал столько времени, сколько длился самый длинный запрос.

Таким образом, проблема в том, что запросы были медленными, поскольку IISне хватало потоков для обработки запросов.Решение состоит в том, чтобы сделать одиночные вызовы API многопоточными.

Мой вопрос заключается в том, переместит ли потребность в дополнительных потоках из IIS в приложение C # не просто перемещение той же проблемы в другое место?Например, потоки IIS и C # получены из одного и того же ресурса?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...