bumbay
@bumbay
Node.JS, MongoDB, PHP

Пуленепробиваемый Node.JS и MongoDB?

А расскажите нам, опытные программисты на Node.JS как вы решаете вопросы с работой ваших веб-серверов на Node.JS?

Как вы решаете вопрос с отловом ошибок в продакшене?
Как вы решаете вопрос с бекапом MongoDB?
Как вы решаете вопрос с поеданием памяти Node.JS и MongoDB?
Как вы решаете вопрос с перезапуском Node.JS после reboot?
  • Вопрос задан
  • 2655 просмотров
Решения вопроса 1
zoonman
@zoonman
⋆⋆⋆⋆⋆
Я только начинающий, но вот что я знаю:

1. Raven и хранение всего в Sentry. Для себя я проще делаю и перенаправляю вывод внутри скрипта в лог-файл.
2. Используется одно из главных преимуществ MongoDB - delayed slave.
3. Еще не сталкивался, но могу могу предположить, что поедание памяти можно решить только двумя путями - написанием качественного кода и перезапуском приложений, когда на сервере недостаточно памяти. Естественно предуматривать соответствующую архитектуру, например два одновременно работающих Node.js инстанса и балансировщик между ними. Перезапускать их поочередно. С монгой тут примерно тоже самое, можно сделать кластер на mongos. Хорошие курсы тут. Из практики достаточно одного хорошего инстанса на 32-64GB RAM если ваша база занимает 20 GB. Монга действительно жрет память ведрами. Но и использует ее эффективно. Многие проблемы решаются благоразумным индексированием и пониманием того, что для быстрой работы все данные с индексами должны помещаться в память.
4. Перезапуск делается примерно так. Плюс еще есть демон monit, который мониторит запущеные процессы. Еще, если погуглите, то найдете 1001 способ Continuous Integration. Это когда деплой и рестарт серверов происходит автоматически.

Полагаю, что профи меня поправят.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
butteff
@butteff
Раз в тысячу лет заправляю свитер в носки
Я не использую nodejs, но насчет монго 5 копеек вставлю. То, что она жрет всю память - миф. Память она освобождает сразу же, если она нужна кому-то еще. А если нет, использует.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы