Основные концепции Node.js

  • 1 сентября, 05:36
  • 4847
  • 0

Представьте себе веб-приложение, которое отправляет сотни запросов в секунду на сервер, который обрабатывает только один запрос за раз. Конечно, у вас возникнут проблемы с производительностью, что так же обернется проблемами для ваших пользователей.

Поэтому, Node.js был создан в 2009 году Райаном Далем, веб-разработчиком, после того, как он столкнулся с  проблемами при разработке функций с интенсивным потоком ввода и вывода с использованием синхронного программирования и многопоточных серверных платформ.

Таким образом, Node.js был технологией, созданной для решения конкретной проблемы: обработки интенсивных асинхронных событий ввода и вывода . И какой язык программирования имеет такую возможность? Ответ был: JavaScript.

Итак, в этой статье делимся знаниями, опытом и исследованиями об этой технологии с целью предоставить основные концепции Node.js и помочь вам понять, почему он так важен в современном мире серверной части.

1. Что такое Node.js?

Node.js - это платформа с открытым исходным кодом на основе JavaScript для серверного программирования, построенная на движке JavaScript V8 Chrome , что означает, что движок, компилирующий JavaScript в веб-браузере, это тот же движок, который запускает в нем Node.js. core, и именно это делает его таким быстрым, особенно для веб-приложений.

2. Почему Node.js?

Node.js - это чрезвычайно мощная серверная платформа для разработки современных, надежных и масштабируемых веб-приложений , которой доверяют такие глобальные компании, как Netflix, Uber, LinkedIn и PayPal.

Благодаря характеристикам одного потока в сочетании с многопоточной платформой, работающей в фоновом режиме, управляемая событиями архитектура идеально подходит для приложений с интенсивным вводом-выводом (входы и выходы) , что позволяет обслуживать больше клиентов с меньшим количеством оборудования, что означает большую производительность с меньшими затратами.

Помимо этого, эта платформа предоставляет разработчикам другие возможности.

Преимущества Node.js

2.1 Неблокирующий ввод / вывод

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

2.2 Одинарная резьба

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

Эта функция делает его легким, масштабируемым и эффективным за счет использования небольшой памяти и емкости инфраструктуры для обработки огромного количества запросов.

2.3 Событийный подход

Node.js - это технология, управляемая событиями, что означает, что поток управления этой серверной платформы управляется возникновением событий . Итак, в момент запуска приложения Node прослушиватель событий под названием Event Loop начинает ждать событий и не останавливается, пока приложение не будет закрыто.

Другими словами, это как если бы действительно эффективный официант ждал заказов, пока ресторан не закроется.

Node.js, управляемый событиями

2.4 Диспетчер пакетов узлов

Node Package Manager - это крупнейшая в мире бесплатная библиотека функций с открытым исходным кодом, которую можно легко импортировать и использовать в любом приложении Node . Все это означает, что независимо от инструментов, которые нужны приложению, его можно найти в диспетчере пакетов узлов.

2.5 Без буферизации

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

2.6 Масштабируемость

Масштабируемость является основной характеристикой узла из-за высокой способности обрабатывать большие объемы запросов асинхронно с низкой инфраструктурой благодаря его архитектуре, которая работает в одном потоке в сочетании с многопоточной платформой, что позволяет получать тысячи одновременных событий.

3. Архитектура Node.js

В архитектуре Node.js есть 3 ключевых элемента, которые работают вместе как фабрика обработки событий . Итак, чтобы было легче понять, как эти элементы взаимодействуют друг с другом,  приведем пример REST API, разработанного на Node.js.

Допустим, Клиент отправляет этому приложению несколько запросов:

3.1 Очередь событий

1- Как только эти запросы достигают приложения, они попадают в очередь событий, которая представляет собой очередь, в которой сначала идут все события, происходящие в приложении , и где они ожидают отправки для обработки в основном потоке, называемом Event Loop .

3.2 Цикл событий

2- Когда запрос (операция блокировки) входит в цикл событий, который представляет собой однопоточную платформу, которая запускает механизм V8 в своем ядре для компиляции JavaScript , он делегируется платформе пула потоков для обработки в фоновом режиме. Итак, с этим архитектурным потоком основной поток снова доступен для обработки других событий.

3.3 Пул потоков

3- В пуле потоков, который представляет собой многопоточную платформу, которая запускает библиотеку под названием libuv и имеет C ++ в своем ядре , запрос (операция блокировки) обрабатывается асинхронно в фоновом режиме, пока он не будет завершен и не будет готов к возврату.

Архитектура Node.js

Заключение

Надеемся, что эта краткая статья помогла вам лучше понять не только то, как работает Node.js, но и то, почему это платформа, которая быстро росла и сегодня используется во многих компаниях и стартапах.

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


Теги: node.js
0 комментариев
Сортировка:
Добавить комментарий

IT Новости

Смотреть все