Comments 28
Как можно заметить, это техника очень близка к реализации nginx (один мастер и несколько воркеров).
Для тех, кто хочет опробовать, — этот API доступен только в ветке master репозитория github.com/ry/node, пока не документирован.
Официально он появится в ветке 0.1.98, насколько можно ожидать.
P.S.: сегодня был зафиксирован коммит, который позволяет обрабатывать не только TCP v4, но и другие варианты сокетов (например, сокеты Unix).
Для тех, кто хочет опробовать, — этот API доступен только в ветке master репозитория github.com/ry/node, пока не документирован.
Официально он появится в ветке 0.1.98, насколько можно ожидать.
P.S.: сегодня был зафиксирован коммит, который позволяет обрабатывать не только TCP v4, но и другие варианты сокетов (например, сокеты Unix).
+2
UFO just landed and posted this here
Эта статья применима только к nginx.
Во-первых, Node.JS создаёт только один контекст, то есть нет затрат на создание контекстов.
Во-вторых, это сервер приложений, поэтому переполнение памяти скорее штатная ситуация для кода приложения. Обычно за стабильность в случае приложений отвечают супервизоры процессов.
В-третьих, в node.js замечательно работает сборка мусора. Процесс может ожиреть в час пик, но потом от исправно отдаст освобождённую память.
Во-первых, Node.JS создаёт только один контекст, то есть нет затрат на создание контекстов.
Во-вторых, это сервер приложений, поэтому переполнение памяти скорее штатная ситуация для кода приложения. Обычно за стабильность в случае приложений отвечают супервизоры процессов.
В-третьих, в node.js замечательно работает сборка мусора. Процесс может ожиреть в час пик, но потом от исправно отдаст освобождённую память.
+2
Чето термин не очень. Они действительно его употребляют?
Дело в том, что слова «http-сервер в режиме prefork» уже были у apache и это совершенно другая модель обработки запросов.
Дело в том, что слова «http-сервер в режиме prefork» уже были у apache и это совершенно другая модель обработки запросов.
0
Ну это не совсем префорк, да.
0
Дайте более правильное словосочетание, пожалуйста.
Сам полчаса пытался подобрать аналог preforking HTTP server.
Кстати, ведь и действительно это prefork. Просто у Node.JS всё описывается с помощью Javascript. Даже сам сервер по большей части написан на Javascript.
Сам полчаса пытался подобрать аналог preforking HTTP server.
Кстати, ведь и действительно это prefork. Просто у Node.JS всё описывается с помощью Javascript. Даже сам сервер по большей части написан на Javascript.
0
Это просто здорово, Node.JS прямо рожден для тонких клиентов :)
+2
Да что же такое творится? Вторая статья про ноде.жс за сегодня. Очень хочется пощупать, но дедлайны не дают — если начать, то боюсь оторваться не получится.
+2
охблин, клевая штука. спасибо.
+1
UFO just landed and posted this here
а как Вы про require('webworker') узнали? его ни в Documentation, ни в ChangeLog нету.
// как и require('querystring'), но это, имхо, очевидно
// как и require('querystring'), но это, имхо, очевидно
0
Автор оригинального материала — немало коммитил в Node, так что знает :) Вы видите перевод, что видно по значку около статьи.
Вдобавок никто не мешает самому просмотреть список модулей ;)
Вдобавок никто не мешает самому просмотреть список модулей ;)
+2
Кто-нибудь в курсе, почему при удалении воркера падает node?
Пробовал убивать из родительского процесса через worker.terminate()
Пробовал изнутри воркера через process.exit()
Пишет так:
Пробовал убивать из родительского процесса через worker.terminate()
Пробовал изнутри воркера через process.exit()
Пишет так:
events:11 throw arguments[1]; ^ Error: ECONNREFUSED, Connection refused at doConnect (net:840:19) at Stream.connect (net:913:30) at Object.createConnection (net:619:5) at Object.<anonymous> (/Users/norlin/Yandex/node/lib/webworker- child.js:106:13) at Module._compile (module:384:23) at Module._loadscriptSync (module:393:8) at Module.loadSync (module:296:10) at Object.runMain (module:447:22) at node.js:208:10
0
Вы уже задали этот вопрос в конференции nodejs, думаю, автор вам там ответит :)
На первый взгляд, в примере просто не перехватывается исключение обрыва соединения с рабочим процессом.
На первый взгляд, в примере просто не перехватывается исключение обрыва соединения с рабочим процессом.
+1
Если кому то интересны подробности почему это работает, можно почитать тут.
0
Sign up to leave a comment.
Node.JS: Пример HTTP-сервера в режиме prefork с использованием Web Workers