Как предотвратить время простоя на Node.js веб-сервер

#node.js #heroku #server #hosting #node-postgres

Вопрос:

У меня есть Node.js веб-приложение и база данных postgres, размещенные на Raspberry pi в моей локальной сети. К ним часто обращаются другие устройства в локальной сети в течение рабочего дня, и любой простой системы приводит к задержке или сбою операций.

Каковы некоторые возможные решения этой проблемы? Нужно ли мне развертывать Node.js веб-приложение, использующее что-то вроде Heroku, или есть способ, которым я мог бы добавить избыточность, разместив Node.js веб-приложение на нескольких разных компьютерах, чтобы приложение продолжало работать в случае сбоя?

Ответ №1:

Вы можете использовать некоторый диспетчер процессов для node.js например, PM2. Вы можете настроить стратегии перезапуска для вашего сервера nodejs. Когда он раздавит PM2, он перезапустит его. См. Эту документацию. Также он может запускать ваше приложение nodejs в режиме кластера — у вас могут быть отдельные экземпляры вашего приложения, и PM2 будет распределять все запросы между ними.
Также, если у вас сбой процесса nodejs из-за возникновения некоторых ошибок, попробуйте обработать эти ошибки правильно, без завершения процесса. Добавляйте try catch, когда это необходимо, обрабатывайте асинхронные ошибки и т. Д..