Size: a a a

Node.js — русскоговорящее сообщество

2021 March 29

МГ

Мишки Гамми... in Node.js — русскоговорящее сообщество
А у нроды вообще можно милльярд сделать управляющих потоков за счёт кластеризации)
источник

МГ

Мишки Гамми... in Node.js — русскоговорящее сообщество
Поэтому нода используется в таких местах где триллиард запросов в секунду)
источник

МГ

Мишки Гамми... in Node.js — русскоговорящее сообщество
Именно поэтому она стала популярной в свое время если че)
источник

IL

Igor Lobanov in Node.js — русскоговорящее сообщество
Мишки Гамми
А у нроды вообще можно милльярд сделать управляющих потоков за счёт кластеризации)
по-умолчанию лучше обсуждать 1 поток, не путайте людей.
источник

МГ

Мишки Гамми... in Node.js — русскоговорящее сообщество
Igor Lobanov
по-умолчанию лучше обсуждать 1 поток, не путайте людей.
Если у него апишка то там должно быть либо кластеризация либо балансировка
источник

IL

Igor Lobanov in Node.js — русскоговорящее сообщество
Мишки Гамми
Если у него апишка то там должно быть либо кластеризация либо балансировка
вы не помогаете
источник

AS

Alexey Shultsev in Node.js — русскоговорящее сообщество
Alexander Dremin
Мне не понятно, как за счет асинхронности и неблокирующего I/O
Достигается то, что на схеме

Те есть тезис, преимущество ноды в том, что пока выполняется что-то асинхронное, поток не блокируется и другие запросы могут обрабатываться
Все асинхронное "отстреливается" из потока выполнения кода и выполняется "на фоне", скажем так
В этот момент у тебя освобождается поток, он может заняться чем-то новым
Например, обработать следующий коннекшн
источник

IL

Igor Lobanov in Node.js — русскоговорящее сообщество
Alexander Dremin
Мне не понятно, как за счет асинхронности и неблокирующего I/O
Достигается то, что на схеме

Те есть тезис, преимущество ноды в том, что пока выполняется что-то асинхронное, поток не блокируется и другие запросы могут обрабатываться
пока выполняются операции типа запроса к базе данных поток разблокируется и в нём орабатываются другие запросы, потом в этом же потоке обрабатывается ответ от бд
источник

МГ

Мишки Гамми... in Node.js — русскоговорящее сообщество
Alexander Dremin
Мне не понятно, как за счет асинхронности и неблокирующего I/O
Достигается то, что на схеме

Те есть тезис, преимущество ноды в том, что пока выполняется что-то асинхронное, поток не блокируется и другие запросы могут обрабатываться
А что на схеме, приходит три реквеста, встают в очередь, по очереди же исполняется, одновременное исполнение достигается за счёт теневого запуска нескольких инстансов интерпретатора, обычная логика асинхронности js, если например вам в клиент одновременно зарезолвилось три промиса тоже самое будет)
источник

IL

Igor Lobanov in Node.js — русскоговорящее сообщество
Мишки Гамми
А что на схеме, приходит три реквеста, встают в очередь, по очереди же исполняется, одновременное исполнение достигается за счёт теневого запуска нескольких инстансов интерпретатора, обычная логика асинхронности js, если например вам в клиент одновременно зарезолвилось три промиса тоже самое будет)
Это не имеет никакого отношения к реальности
источник

МГ

Мишки Гамми... in Node.js — русскоговорящее сообщество
Объясните.
источник

AD

Alexander Dremin in Node.js — русскоговорящее сообщество
Igor Lobanov
пока выполняются операции типа запроса к базе данных поток разблокируется и в нём орабатываются другие запросы, потом в этом же потоке обрабатывается ответ от бд
Спасибо
Смотрите я запускал сервер, и постоянно отправлял 2 реквеста на 2 ендпоинта
1 обработчик вы уже видели, второй на скрине
Таким образом:
while true; do date && curl http://localhost:8080/test2/?userName=admin; echo "\n"; done
источник

AD

Alexander Dremin in Node.js — русскоговорящее сообщество
Логично предположить, что раз запросы отправляются постоянно
То количество обработанных запросов на энпоинт с этим обрабоотчиком будет больше

НО они выполнялись у меня по очереди
источник

IL

Igor Lobanov in Node.js — русскоговорящее сообщество
Alexander Dremin
Спасибо
Смотрите я запускал сервер, и постоянно отправлял 2 реквеста на 2 ендпоинта
1 обработчик вы уже видели, второй на скрине
Таким образом:
while true; do date && curl http://localhost:8080/test2/?userName=admin; echo "\n"; done
тут нет io операций, всё запросы синхронно выполняются
источник

AS

Alexey Shultsev in Node.js — русскоговорящее сообщество
Alexander Dremin
Мне не понятно, как за счет асинхронности и неблокирующего I/O
Достигается то, что на схеме

Те есть тезис, преимущество ноды в том, что пока выполняется что-то асинхронное, поток не блокируется и другие запросы могут обрабатываться
У кого-то я видел хорошую аналогию
Представим, что запрос - это клиент в кафе
БД - это кухня
А поток нод джса - это официант

Так вот официант не ждёт, пока повар выполнит заказ
Он отдает на кухню записку с тем, что нужно приготовить, и снова идёт в зал за новым заказом, потому что ещё есть клиенты
источник

IL

Igor Lobanov in Node.js — русскоговорящее сообщество
Alexey Shultsev
У кого-то я видел хорошую аналогию
Представим, что запрос - это клиент в кафе
БД - это кухня
А поток нод джса - это официант

Так вот официант не ждёт, пока повар выполнит заказ
Он отдает на кухню записку с тем, что нужно приготовить, и снова идёт в зал за новым заказом, потому что ещё есть клиенты
похоже на правду
источник

IL

Igor Lobanov in Node.js — русскоговорящее сообщество
Мишки Гамми
А что на схеме, приходит три реквеста, встают в очередь, по очереди же исполняется, одновременное исполнение достигается за счёт теневого запуска нескольких инстансов интерпретатора, обычная логика асинхронности js, если например вам в клиент одновременно зарезолвилось три промиса тоже самое будет)
нет никаких теневых инстансов, причём тут промисы не совсем понятно
источник

IL

Igor Lobanov in Node.js — русскоговорящее сообщество
промисы это просто микротаски, которые в тот же эвентлуп попадают, только с бОльшим приоритетом
источник

AD

Alexander Dremin in Node.js — русскоговорящее сообщество
Igor Lobanov
тут нет io операций, всё запросы синхронно выполняются
Ну вот смотрите 1й запрос, выполняются асинхронные операции, пока они выполняются поток свободен
2й запрос, синхронный код

Я ожидаю, что пока выполняется асинхронная операция, она по идее выполняется долго, и поток свободен, я смогу обработать несколько синхронных запросов
НО нет
У меня синхронный запрос и асинхронный выполнялись по очереди
источник

IL

Igor Lobanov in Node.js — русскоговорящее сообщество
Alexander Dremin
Ну вот смотрите 1й запрос, выполняются асинхронные операции, пока они выполняются поток свободен
2й запрос, синхронный код

Я ожидаю, что пока выполняется асинхронная операция, она по идее выполняется долго, и поток свободен, я смогу обработать несколько синхронных запросов
НО нет
У меня синхронный запрос и асинхронный выполнялись по очереди
сделайте задержки секунд по 30 и посмотрите (замените чтение файла на setTimeout, например)
источник