В этой статье мы рассмотрим как строиться архитектура Node.js, думаю многим будет интересно.
Также посмотрите статью «Основы node.js» советую всем прочитать, особенно новичкам.
Aрхитектура Node.js:
Node.js — это чрезвычайно мощная платформа на основе JavaScript, построенная на движке Google Chrome JavaScript V8 Engine, используемая для разработки веб-приложений с интенсивным вводом-выводом. Например, сайты потокового видео, одностраничные приложения, приложения для онлайн-чата и другие веб-приложения.
Node.js используется как крупными, солидными компаниями, так и недавно созданными стартапами. Платформа с открытым исходным кодом и полностью бесплатная, используется тысячами разработчиков по всему миру.
Веб-приложения:
Веб-приложение — это программа, которая запускается на сервере и обрабатывается клиентским браузером, используя Интернет для доступа ко всем ресурсам этого приложения. Обычно его легко разбить на три части:
1. Клиент:
Пользователь взаимодействует с интерфейсной частью веб-приложения. Интерфейс обычно разрабатывается с использованием таких языков, как стили HTML и CSS, наряду с широким использованием фреймворков на основе JavaScript, таких как ReactJS и Angular, которые помогают в проектировании приложений.
2. Сервер:
Сервер отвечает за прием клиентских запросов, выполнение требуемых задач и отправку ответов клиентам. Он действует как промежуточное ПО между интерфейсом и хранимыми данными, позволяя клиенту выполнять операции с данными. Node.js, PHP и Java — самые популярные технологии, используемые для разработки и обслуживания веб-сервера.
3. База данных:
В базе данных хранятся данные для веб-приложения. Данные могут быть созданы, обновлены и удалены по запросу клиента. MySQL и MongoDB — одни из самых популярных баз данных, используемых для хранения данных для веб-приложений.
Архитектура сервера Node.js:
Node.js использует архитектуру «однопоточного цикла событий» для обработки нескольких одновременных клиентов. Модель обработки Node.js основана на модели событий JavaScript вместе с механизмом обратного вызова JavaScript.
Части архитектуры Node.js:
1. Запросы
Входящие запросы могут быть блокирующими (сложными) или неблокирующими (простыми), в зависимости от задач, которые пользователь хочет выполнить в веб-приложении.
2. Сервер Node.js
Это серверная платформа, которая принимает запросы от пользователей, обрабатывает их и возвращает ответы соответствующим пользователям.
3. Очередь событий
Хранит входящие клиентские запросы и передает их один за другим в цикл событий.
4. Пул потоков
Состоит из всех потоков, доступных для выполнения некоторых задач, которые могут потребоваться для выполнения клиентских запросов.
5. Цикл событий
Неограниченно принимает запросы и обрабатывает их, а затем возвращает ответы соответствующим клиентам.
6. Внешние ресурсы
Для блокирования клиентских запросов требуются внешние ресурсы. Эти ресурсы могут быть для вычислений, хранения данных и т. Д.
Рабочий процесс архитектуры Node.js:
1. Клиенты отправляют запросы на веб-сервер для взаимодействия с веб-приложением. Запросы могут быть неблокирующими или блокирующими:
- Запрос данных
- Удаление данных
- Обновление данных
2. Node.js получает входящие запросы и добавляет их в очередь событий.
3. Затем запросы передаются один за другим через цикл событий. Он проверяет, достаточно ли просты запросы.
4. Event Loop обрабатывает простые запросы (неблокирующие операции), такие как опрос ввода-вывода, и возвращает ответы соответствующим клиентам.
Один поток из пула потоков назначается одному сложному запросу. Этот поток отвечает за выполнение конкретного запроса на блокировку путем доступа к внешним ресурсам, таким как вычисления, база данных и т. Д.
После того, как задача выполнена полностью, ответ отправляется в цикл событий, который, в свою очередь, отправляет этот ответ обратно клиенту.
Преимущества архитектуры Node.js:
1. Обработка нескольких одновременных клиентских запросов выполняется быстро и легко.
2. Благодаря использованию очереди событий и пула потоков сервер Node.js позволяет эффективно обрабатывать большое количество входящих запросов.
3. Нет необходимости создавать несколько потоков.
4. Цикл событий обрабатывает все запросы один за другим, поэтому нет необходимости создавать несколько потоков. Вместо этого для обработки блокирующего входящего запроса достаточно одного потока.
5. Требует меньше ресурсов и памяти.
Вывод:
В этой статье мы рассмотрели как строиться архитектура Node.js, думаю всем было интересно и полезно.