В.1 Я знаю, что когда мы говорим о synchronous HTTP
, для каждого запроса может создаваться и блокироваться поток, поэтому при увеличении количества одновременных подключений мы столкнемся с огромными накладными расходами потока.
Асинхронный режим допускает некоторые служебные ответы на опрос для чего-то желаемого, но количество потоков резко уменьшается.
Я также знаю, что Asynchronous HTTP
позволит нам выполнять действия, даже если доставленный ответ не является полным (получена только часть ответа). что подходит для действий в реальном времени.
Но каковы другие преимущества Async HTTP
?
В.2 У меня есть сервер, на котором есть только один клиент, но этот клиент будет отправлять тысячи запросов в секунду. Я использую блокирующий ввод-вывод (Synchronous HTTP
) с облегченными потоками (Quasar
). Должен ли я перейти на асинхронный? Какая польза от этого для меня?
Каковы преимущества асинхронного HTTP
Ответы (1)
Во-первых, я не думаю, что мы говорим об «асинхронном HTTP» из-за неоднозначного значения.
Есть 2 случая, когда мы упоминаем и асинхронный, и http:
- Для клиентов это асинхронный запрос;
- Для серверов это асинхронный ввод-вывод;
Я думаю, что ваш вопрос на самом деле о последнем.
A.1 Преимущества асинхронного ввода-вывода
- Он может обрабатывать большое количество клиентов/запросов одновременно. См. проблема C10k.
- Он может повторно использовать простаивающие потоки для повышения пропускной способности, когда каждый запрос требует длительного времени ожидания (ожидание дискового ввода-вывода, базы данных и т. д.).
A.2 Вы можете переключиться, если ваш сценарий соответствует одному из вышеперечисленных.
person
Anderson
schedule
08.06.2016