Сообщение от petya
|
Ходят слухи, что node, благодаря своей асинхронности, идеально подходит для высоконагруженных серверов. Но ведь асинхронность означает только то, что сервер без задержек принимает запросы. JS однопоточен, соответственно,отдает он их в порядке очереди, и, если в очереди дофига запросов, то последний клиент поседеет, пока дождется ответа. Это, по-сути, еще хуже, чем в многопоточной модели, там хоть, все клиенты на равных правах находятся. А тут получается, что один запрос вешает всю очередь. Тут надо бы что-то получше придумать, не?
|
по-сути, это означает что сервер не будет простаивать даже при 10 000 одновременных запросов не тратя свои ресурсы на создание 10 000 потоков выделение под них памяти и т.д. в нем не будет 10 000 ждущих ответа от бд или файловой системы.
Асинхронность это не панацея это просто набор правил которые призваны защитить от излишних блокировок выполнения программы так же такой подход позволяет заметно экономить ресурсы системы.
Как следствие написание программ заметно усложняется возникает ад обратных вызовов такие программы почти невозможно распаралелить и сложно отлаживать.
Программы/скрипты которые избегают блокировок очень отзывчивы и как правило не заблокированны.
Все это элементарно проверяется простыми тестами.