The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Выпуск серверной JavaScript-платформы Node.js 6.0

28.04.2016 22:11

Представлен релиз Node.js 6.0.0, платформы для выполнения высокопроизводительных сетевых приложений на языке JavaScript. В октябре ветка Node.js 6.x получит статус стабильного выпуска с длительным сроком поддержки (LTS), обновления для которого будут выпускаться в течение 30 месяцев. LTS-ветки предлагаются для сложных промышленных внедрений, крупных предприятий и тех, для кого стабильность имеет первоочередное значение. Поддержка прошлой ветки Node.js 5.x будет осуществляться ещё два месяца, LTS-ветка 4.x будет поддерживаться ещё год.

Из новшеств Node.js 6.0 отмечаются значительные оптимизации производительности, например, загрузка модулей ускорена почти в 4 раза. Добавлены новые конструкторы для API Buffer (Buffer.from(), Buffer.alloc() и Buffer.allocUnsafe()). В API File System представлены более эффективные реализации вызовов fs.realpath() и fs.realpathSync(). Расширены средства обработки ошибок. Движок V8 обновлён до версии 5.0, в которой обеспечена поддержка 93% возможностей JavaScript, определённым в спецификации ECMAScript 6.

  1. Главная ссылка к новости (https://nodejs.org/en/blog/rel...)
  2. OpenNews: Выпуск серверной JavaScript-платформы Node.js 5.0
  3. OpenNews: Выпуск JavaScript-платформы Node.js 4.2.0 LTS
  4. OpenNews: JavaScript-платформа Node 4.0.0 ознаменовала слияние проектов Node.js и io.js
  5. OpenNews: Node.js и io.js объединились под покровительством организации Linux Foundation
  6. OpenNews: В рамках проекта IO.js началось развитие форка Node.js, независимого от компании Joyent
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/44337-node.js
Ключевые слова: node.js
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (37) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 22:27, 28/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    как запустить несколько воркеров на Nodejs спрятав их за nginx?
    как вообще работают с NodeJS, запускают несколько инстансов?  
     
     
  • 2.2, Отражение луны (ok), 22:38, 28/04/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Кластеры херачат, но обычно нет надобности.
     
  • 2.3, Аноним (-), 22:45, 28/04/2016 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > как запустить несколько воркеров на Nodejs спрятав их за nginx?
    > как вообще работают с NodeJS, запускают несколько инстансов?

    читай за микросервисы, контейнеры и программные стеки основанные на этом. Там целая занятная отрасль хипстопрограммирования.

     
  • 2.4, Аноним (-), 23:35, 28/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Можно кластерами, можно нафоркать мастер процесс.
     
  • 2.5, angra (ok), 23:46, 28/04/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Для начала надо спросить себя: "а нужно ли это делать?". Все-таки нода это не пых, 10k для нее не проблема, так что не стоит переносить на нее старые практики.
     
     
  • 3.6, Аноним (-), 23:59, 28/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Когда хайлод проще разделить на кластеры - у фронта свой, у api второй, у фоновых задач (планировщик к примеру) - третий и т.д.
     
  • 3.7, Аноним (-), 06:43, 29/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Все-таки нода это не пых, 10k для нее не проблема

    Это вы в учебнике вычитали или данные для hello world?

     
     
  • 4.8, Анон1 (?), 06:58, 29/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Ясно, что хелловорлд, да только пых у меня 16К-20K тянет при таком раскладе(если тестить с ab). Ноду не тестил, да и вообще, что толку от хелловорлд-то?
     
     
  • 5.11, Georges (ok), 08:19, 29/04/2016 [^] [^^] [^^^] [ответить]  
  • –7 +/
    Кому нужен Highload на PHP, выбирают решения от 1C-Bitrix .
     
     
  • 6.12, menangen (?), 08:23, 29/04/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Анальный зонд от русских эффективных менеджеров?
     
     
  • 7.13, Georges (ok), 08:49, 29/04/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да, на ноде такое пилить и пилить.
     
  • 6.14, Бугога (?), 13:59, 29/04/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Так тонко, что аж толсто ^_^
     
  • 6.18, Аноним (-), 15:00, 29/04/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Кому нужен highload вообще не выбирают PHP.
     
  • 5.16, angra (ok), 14:31, 29/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    16К-20K в минуту? Вполне может быть, но речь то шла про количество одновременных соединений. Кстати ab для тестирования подобных нагрузок не годится, он на это не рассчитан и создать ее не сможет.
     
  • 3.21, Аноним (-), 20:44, 29/04/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    На собственном опыте скажу что да, иногда надо. Например у меня на проекте нагрузки около 50к запросов в секунду в среднем, при этом надо еще всякую логику считать и базу ходить. Нода то выдерживает но ядра процессора имеют предел на количество операций, так что когда ядро занято на 100% быстрее работать на нем уже не получится, поэтому логично кластеризоваться по количеству ядер (например на процессоре с 8 ядрами можно сделать 8 процессов)
     
  • 2.9, Аноним (9), 07:16, 29/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    для этого нодэжснутые придумали себе костыль

    https://nodejs.org/api/cluster.html

     
     
  • 3.35, Аноним (-), 15:45, 30/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >> для этого нодэжснутые придумали себе костыль

    Школьник-иксперд в ветке! Всем преклонить колено!

     
  • 2.20, arzeth (ok), 19:58, 29/04/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я использую pm2 — очень хорошая штука. Даже переписывать ничего не надо — pm2 сам как-то делает так, чтобы несколько инстансов могли использовать один и тот же порт. Ведёт логи, автоматически перезапускает инстанс, если он сдох или съел N МБ оперативки.

    1) pm2 ecosystem создаст ecosystem.json
    2) затем подправить под себя ecosystem.json (см. http://pm2.keymetrics.io/docs/usage/application-declaration/ )
    3) pm2 start ecosystem.json запустит приложение.
    4) Теперь каждый раз, когда демон pm2 стартует, это приложение будет запускаться.

     
     
  • 3.22, Аноним (-), 20:48, 29/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Я тоже им пользуюсь в некоторых случаях (кстати разделение портов работает за счет того, что он стандартным нодовским модулем cluster процессы запускает), но при высоких нагрузках в десятки тысяч запросов в секунду иногда случалось так что падал основной процесс pm2 со всеми дочерними, приходилось еще поверх него супервизор лепить, так что иногда имеет смысл настроить кластеризацию самому, особенно когда нужно очень гибкое управление каждым отдельным процессом
     

  • 1.10, жопошник 2 (?), 07:21, 29/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > платформы для выполнения высокопроизводительных сетевых приложений на языке JavaScript

    Ребят, я правильно понимаю, что в мире дотнета роль ноды должен выполнять кестрел?

     
     
  • 2.28, Аноним (-), 03:47, 30/04/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    На винфак.
     

  • 1.15, Аноним (-), 14:25, 29/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как-то тостили мы наш back-end на Java для проверки хайлода по запесям в Hadoop. Взяли значит Node.js v5, форкнули на 4 ядра и начали слать POST запросы, avg ~ 136 000 в минуту выходило :)
     
     
  • 2.24, Аноним (-), 22:07, 29/04/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это около 2к в секунду, что то маловато, нода вполне по 10к на ядро может, хотя от внутренней логики зависит
     

  • 1.17, Аноним (-), 14:34, 29/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Глядя на комменты вспомнил древний анекдот:
    Подходит сын к папе и спрашивает:
    -Папа, а что такое многозадачность?
    -Погоди, сынок, вот оформатирую дискетку и расскажу.

    Всё-таки при всех этих паттернах проектирования, доктринах, и прочих наворотах для удобства, я лично предпочитаю си, и правила реализации, с префиксами в функциях и с разделением по файлам различных методов.

     
     
  • 2.19, Аноним (-), 18:09, 29/04/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    клоун Уверен, что это лучший вариант Посмотрим на ЯП абстрактно Есть переменн... большой текст свёрнут, показать
     
     
  • 3.23, Аноним (-), 20:54, 29/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >Я "свой" ЯП так и не нашёл. То одно не так, то в другом косяк.

    Методичку-то осиль до конца, дурачок, там написано, что твой язык - C#.
    P.S. безграмотный пост безграмотен.

     
  • 3.25, anon2 (?), 22:34, 29/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > В С/С++ принято разделять файлы заголовков (h) и реализации (c, cpp). Зачем?
    > Чтобы исправлять не в одном месте, а в двух? Какой смысл
    > в правиле, что объявление должно идти до использования: компилятор не может
    > второй проход сделать и нагружает этой работой человека? Не иначе.

    Для того, для чего и в джаве выделяют интерфейсы и классы их реализующие. Абстрагирование интерфейса от реализации упрощает реализацию сложных систем.
    В итоге, и в джаве, и в сях получается по два файла на класс/модуль.


     
     
  • 4.26, Аноним (-), 01:49, 30/04/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    клоун: Так пишут в книжках, не объясняя за счёт чего достигается упрощение и чем повторение одного и того же дважды проще, чем написание этого один раз.

    Открою секрет: хидер элементарно генерится из реализации. Разделяя на два файла ты не абстрагированием занимаешься, а фигнёй страдаешь, набирая код дважды и следя чтобы он в обоих файлах был идентичным.

    Не всё, что является привычным, является нужным и полезным.

     
     
  • 5.30, anon2 (?), 09:03, 30/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > клоун: Так пишут в книжках, не объясняя за счёт чего достигается упрощение
    > и чем повторение одного и того же дважды проще, чем написание
    > этого один раз.
    > Открою секрет: хидер элементарно генерится из реализации. Разделяя на два файла ты
    > не абстрагированием занимаешься, а фигнёй страдаешь, набирая код дважды и следя
    > чтобы он в обоих файлах был идентичным.

    Упрощение достигается а счет абстрагирования (уменьшения количества информации, с которой приходится работать программисту).
    В реализации гораздо больше информации, чем в интерфейсе.

    С++, кстати, провоцирует добавить в объявление класса private секцию с информацией о реализации, в отличие от С, где внутренние static-функции не добавляются в интерфейсный хедер.

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

    Что удобнее - работать с вручную отредактированной документацией (C-хедером), к тому же проверяемой компилятором, или с авто-генерённой документацией - это ещё вопрос.

     
  • 4.27, Аноним (-), 02:04, 30/04/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    клоун: А отсутствие в сях нормальной реализации include once вынуждает заниматься ещё одной фигнёй:

    #pragma once
    #ifndef FILENAME
    #define FILENAME

    ........

    #endif

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

    То, что ты вынужден набирать руками в каждом файле один и тот же код говорит о том, что ЯП в этой части не доработан и не продуман.

     
     
  • 5.31, anon2 (?), 09:09, 30/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >[оверквотинг удален]
    > #pragma once
    > #ifndef FILENAME
    > #define FILENAME
    > ........
    > #endif
    > Тоже будешь обосновывать его необходимость, рассказывая сказки про великую мощь сишного
    > препроцессора?
    > То, что ты вынужден набирать руками в каждом файле один и тот
    > же код говорит о том, что ЯП в этой части не
    > доработан и не продуман.

    То, что ЯП позволяет реализоввывать на нём сложные системы, говорит от том, что ЯП продуман для реализации таких систем.

    #pragma once - не нужно
    #ifndef FILENAME - не напрягает.

    У каждого языка свои заморочки - в джаве, например, имя файла почему-то должно соответствовать имени класса.

     
     
  • 6.32, Аноним (-), 09:41, 30/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    клоун: Мда...

    Два подключения подряд - и ты получишь гарантированную ошибку.

    #include "file.h"
    #include "file.h"

    Если бы include работал как include once, ошибки бы не возникло.

    Обратное не верно: нет ни одной ситуации, когда требуется несколько раз инклюдить один и тот же файл.

    Получается, что ЯП создан так, чтобы провоцировать ошибки.

    И ты считаешь, что это нормально. Мда... Я даже не хочу смотреть на остальной твой код. Я заранее знаю: таких "особенностей" в нём будет много, потому что ты привык так мыслить и не понимаешь ошибочности собственного мнения.

     
     
  • 7.33, Прошраммист (?), 11:10, 30/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Товарищ, вы лучше бросайте программирование, не ваше это, хотя для вас как раз JavaScript и создан.

    В си нужно понимать, что делаешь и когда ты поймёшь  этот язык, тогда и сможешь себя назвать программистом.
    Разделение на h и c? В чем проблема? Какой ещё дубляж?
    Благодаря этому разделению ты можешь сделать идеальный black box, описывая в h лишь название функции которые можно вызывать, скрывая всю реализацию.
    Я лично терпеть не могу языки программирования где все смешанно в одном файле.  Это полный п*****  разбираться  в этой куче.

     
     
  • 8.34, Аноним (-), 15:29, 30/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    клоун с возрастом, наверное, приходит Лет через 20 поймёшь Или когда выучиш... текст свёрнут, показать
     
  • 7.37, Аноним (-), 01:32, 01/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >Обратное не верно: нет ни одной ситуации, когда требуется несколько раз инклюдить один и тот же файл.

    Давай ты не будешь делать такие категоричные заявления, а пойдешь изучать пхп? Зачем тебе няшная сишечка?

    Инклюдом одного файла в ней делается кодогенерация  макросами
    https://habrahabr.ru/post/154811/

     
  • 3.29, angra (ok), 04:45, 30/04/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ты путаешь С и С++, функциональное и процедурное программирование. Не разобрался в наследовании и полиморфизме. Рассуждаешь то о конкретном ЯП, то о ЯП вообще, при этом не имея понятия о катастрофических различиях в реализации ООП парадигмы в них. При таком ниасиляторстве не удивительно , что ты не нашел "свой" ЯП.
     

  • 1.36, Аноним (-), 19:46, 30/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Респект ребятам! Хорошую вещь пилят...
    а мы тут потихоньку на ней свою пилим..
    :)

    П.С. лицензии блюдем.. ибо свято!

     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Ideco
    A-Real
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2021 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру