2013-08-05 2 views
2

Я использую Webrtc, nodejs, Expressjs как основу для создания приложения для аудио, видео и чата. Я использовал Forever так, чтобы скрипт работал непрерывно.Лучший подход к развертыванию и запуску серверов узлов на производственных машинах?

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

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

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

+0

Вы должны использовать лица без вызовов API с общим хранилище ключ-значение для имитации состояния, когда один находится требуется. Вы также должны использовать очередь сообщений между процессами узла, в дополнение к общему хранилищу ключей. Каждый сервер должен иметь возможность позаботиться о любом запросе, независимо от последовательности последовательных запросов маршрутизации. При развертывании нескольких процессов с постоянным подключением не снимайте их до тех пор, пока все соединения не будут отключены, и убедитесь, что никаких новых подключений не установлено. Список продолжается ... насколько далеко от приложения установлено приложение? :) – randunel

ответ

0

1) использовать кластер узлов для развертывания нескольких процессов на ядро. Поэтому, если один из процессов умер, другой процесс будет автоматически загружаться. Выезд: http://nodejs.org/api/cluster.html

2) использовать домен, чтобы поймать операцию asyn вместо использования try-catch или uncaught http://nodejs.org/api/domain.html. Я не говорю, что попытка или неудача - это плохая мысль!

3) использовать навсегда/супервизора контролировать свои услуги

4) добавить демон для запуска приложения узла: http://upstart.ubuntu.com

надеюсь, что это помогает!

Я также ответил на этот пост: How do I prevent node.js from crashing? try-catch doesn't work

Смежные вопросы