ASP.NET MVC - Как я могу обрабатывать тысячи пользователей, отправляющих HTTP-запросы одновременно? - PullRequest
1 голос
/ 04 ноября 2019

Я разрабатываю веб-приложение, которое будет отвечать за загрузку некоторых HTML-документов с разных веб-сайтов.

public ActionResult DownloadHTML (List<string> URLs)
{
    foreach (var URL in URLs)
    {
        var client = new WebClient();
        client.DownLoadStringAsync(URL);
        var result = DoSomethingElse(URL)
    }
    return Json(Success = true)
}

На данный момент я протестировал его с 10 пользователями, поэтому у меня до сих пор не было проблем. Но что делать, когда 10 000 человек пытаются выполнить ту же функцию и загрузить HTML-документ с веб-сайта? Я также не хочу создавать проблемы на любом веб-сайте, отправляя миллионы запросов или делая мое приложение ненадежным.

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

Каков наилучший способ предотвратить / справиться с подобным сценарием?

Спасибо за любую помощь

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