Ответы пользователя по тегу Node.js
  • В чём преимущество асинхронных серверов перед PHP/nginx?

    @rozhik

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

    Вся прелесть, сложность и проблемы в асинхронном подходе возникают по одной и той-же причине. Результат на запрос приходит не сразу, а асинхронно. Это даёт огромное уменьшение времени отклика программы, если в ней используется результат нескольких не зависимых IO операций. Во всех остальных случаях синхронный подход проще, при таком-же времени доставки ответа. (IO - это работа с файлами, внешними api итп )

    Nodejs имеет один существенный недостаток - у неё один процесс выполнения. По этому тяжелые вычисления на ней значительно уступают в производительности PHP на многопроцессорных/ядерных системах. (это дело легко обходится воркерами итп, но это еще один недостаток)
    erlang, java и несколько других языков не имеют вышеуказанной проблемы.

    Nodejs по сравнению с PHP имеет еще 2 важных плюса:
    1. в ноде можно хранить данные, таймеры, дескрипторы итп между запросами. По этому это намного эффективнее различных механизмов кэширования PHP.
    2. в ноде не тратится время на подгрузку кода.

    >>В асинхронном сервере в единый момент времени обрабатывается столько запросов, сколько есть воркеров и в PHP/nginx точно также.
    Не верно, ни в первом ни во втором случае. В асинхронном сервере есть всего один поток, который обрабатывает любое количество запросов, в nginx - точно так-же. О PHP - другая история, но на каждый запрос нужен как минимум thread или process.

    Ответ написан
    1 комментарий
  • Чат в тяжелом проекте на symfony (в любом тяжелом бэкенд-движке) — как?

    @rozhik
    1. Да
    2. Нет. Если Вам нужен качественный, быстрый, и лёгкий чат. И «Да», если вам не важны эти характеристики.
    3. Я бы порекомендовал 2 фазную авторизацию. Когда на чат сервере — своя сессия. И он у симфонии (или наоборот) через RPC подвязывается сессия к пользователю.
    4. Лучше сообщения держать в памяти чат сервера. Если вам нужны логи, или модэрация — то сообщения можно выгружать в Мускуль. Но читать их от туда (кроме случая с стартом чат сервера) смысла нет совершенно.

    P.S. Примеров чат серверов и на longPooling, и на webSocket на node.js много. RPC реализаций — тоже. Прикрутить чат — дело пары часов (Вместе с кроссаутентификацией итп)
    Ответ написан
    5 комментариев
  • Зависают запросы к Node через Nginx

    @rozhik
    В связке Nginx + нода, при правильной настройке проблем нет. И со статикой и с динамикой.

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

    Судя по красивой минуте — отдача происходит по таймауту. Проблема может быть нодовском коде (что скорее всего), либо протокольной (к примеру после минуты ожидания закрытия потока — он закрывается автоматом).
    Ответ написан
  • Подсоветуйте фреймворк для node?

    @rozhik
    Я не буду советовать какой-то конкретный фреймворк (простите), но хотел отметить, что если он вам понравился, и в текущем состоянии удовлетворяет — то берите его. Развивайте с авторами, (тем более он очень простой). В конце концов форк никто не отменял. Все продукты были самопальными.

    По поводу критики impress — я бы таки выбрал другой. Очень странная архитектура, если он выживет — то явно поменяет не только половину апи — но и принципы расположения файлов.

    P. S.: Вообще хотелось бы выслушать все предложения по поводу написания мобильных текстовых игр ;)
    предлагаю их не писать (если вы хотите заработать денег).
    Ответ написан
    1 комментарий
  • Node.js в качестве server-side для enterprise приложения?

    @rozhik
    Я рекомендовал бы делать движение в эту сторону поэтапным.
    1. оставить PHP снаружи.
    2. писать на ноде участки кода расчета, делать к ним RPC доступ из PHP. В PHP постепенно заменять расчеты на вызовы ноды.
    3. дождаться критической массы — и принять решение а) оставить как есть, б) изменить архитектуру (выставить в наружу ноду итп)
    Ответ написан
    3 комментария
  • Node.JS детям — возможно или фантастика?

    @rozhik
    Дети любят видеть.
    Лучше игрушку чисто клиентскую.
    Ответ написан
    Комментировать
  • Node.js для простых сайтов. Стоит ли забивать на PHP?

    @rozhik
    Я рекомендовал бы использовать и одно и другое.
    Поставить спереди nginx, который форвардит запросы PHP + node и отдаёт статику (это решение лишь незначительно нагружает сервер, но если у Вас хотя бы 10% статики — то только выиграете). В дальнейшем писать на чем удобнее для конкретной задачи. К примеру у меня nginx который форвардит к erlang, node, php.
    Ответ написан
    Комментировать