Задать вопрос

Оправдано ли будет использование NodeJS в качестве бэкенда крупного приложения?

Доброго времени суток,

У кого есть (или знает) крупные проекты на NodeJS с большим количеством посетителей (именно одновременных запросов). Сейчас backend написан одним человеком на коленке для быстрого запуска и сейчас стоит большая задача, переписать с нуля. Хочется взять NodeJS в качестве бэкенда приложения (конечно же с TypeScript для типизации и прочих плюшек). Чем-то NodeJS меня подкупает, но опасаюсь, что не справится с очень большими нагрузками. Хочется услышать мнение людей, которые действительно работали с NodeJS и с большими нагрузками на него. Фронт стоит на Angular (5 мажорная версия на данный момент), тем самым снижая n-нагрузки (ощущается, кстати, прилично)

Участвовал на highload cup с NodeJS, сначала очутился в "попе" рейтинга, из-за некоторых блокирующих запросов, но после правок вышел в 80, но после, конечно же, сместили меня C, C++, GO с нестандартными решениями (которые, конечно же, в большинстве случаев не сработали бы в настоящих проектах). И вот тут у меня по сей день возникает смешанное чувство. В какой-то мере NodeJS меня порадовал, но всё же я думал, что будет намного лучше...
  • Вопрос задан
  • 9813 просмотров
Подписаться 23 Средний 12 комментариев
Решение пользователя Mikhail Osher К ответам на вопрос (4)
miraage
@miraage
Старый прогер
Мопед не мой.. Но знаю одного вендора игр для мобилок. Пару штук у них весьма популярны.
У них Nodejs (express, koa, sails - не знаю), основное хранилище - redis, вспомогательное - postgres.
Так же, есть общение по WebSocket и фоновый дэмон (вроде как на Kue). И немало Lua запросов в redis.

Я считаю, что с помощью многих инструметов можно написать одинаково как и хорошее приложение, так и плохое. Главное, как будете писать.

Само собой, будет несколько лидеров по производительности. Но не стоит забывать про экосистему/поддержку выбранного стэка.

Выбор за Вами. И совет, если возьмете NodeJS: никаких babel-node и ts-node не использовать. Только обычную ноду, без всяких флагов --harmony итд.
Ответ написан