0

Использование Node.js для крупного проекта [закрыто]

7

Проблема с выбором NodeJS для крупного серверного приложения

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

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

  • NodeJS работает на JavaScript, который использует событийные циклы. Это не всегда эффективно при большом объеме операций.
  • Несмотря на то, что NodeJS является неблокирующим, все запросы обрабатываются в одном потоке, что может привести к узкому месту при большом количестве обработанных запросов.
  • NodeJS основан на собственном HTTP-сервере, что будет означать, что для дальнейшего обслуживания потребуется опытный системный администратор или разработчик, обладающий знаниями в этой области.
  • Для NodeJS не так много хорошо протестированного и разнообразного программного обеспечения, которое могло бы помочь в создании масштабного приложения.

Может ли кто-то прояснить ситуацию? Действительно ли NodeJS так мощен, как говорят? Является ли он действительно подходящим выбором для разработки крупных серверных приложений, или есть другие технологии, которые могут лучше справиться с этой задачей?

3 ответ(ов)

0

Node.js действительно мощный инструмент в своем роде. Вот несколько дополнительных моментов:

  1. Вы можете запускать несколько экземпляров вашего приложения с балансировкой нагрузки для обработки большого количества запросов.
  2. Выбирайте Node.js для чтения 2000 файлов вместо вычисления 20-го простого числа.
  3. Используйте Node.js для интенсивного чтения/записи файлов или взаимодействия с портами.
  4. Очень полезно, когда вам нужно транслировать свой ответ нескольким клиентам одновременно.
  5. Не беспокойтесь о взаимных блокировках в Node.js, лучше обращайте внимание на то, как часто вы выполняете одни и те же операции.
  6. Самое важное: значения живут в движке V8 до тех пор, пока процесс не завершится. Будьте внимательны к количеству строк кода, которые вы собираетесь «направить» в Node.js.
0

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

0

Насколько мне известно, именно высокая скорость и использование async/await делают наибольшую разницу в производительности.

Для тех, кто обладает умеренными навыками в JavaScript и особенно понимает REST, а также упомянутые аспекты, Node.js является одним из лучших решений для крупных корпоративных приложений.

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

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь