Отказоустойчивость Nodejs Cluster Master

Я проектирую кластер с использованием Node JS server. Я читал в документации, что кластеризация NodeJS создается на одном сервере, используя в основном рабочие процессы в зависимости от количества процессоров, имеющихся на сервере. Мой вопрос касается механизма аварийного переключения, способного поддерживать работу моего приложения, даже если главный процесс выйдет из строя.

Что лучше всего в этой ситуации?


person Alex    schedule 23.11.2016    source источник


Ответы (1)


Я могу дать вам несколько предложений на основе проектов Node.js, над которыми я работал.

  1. Используйте механизм кеширования, такой как Redis (используйте его как кеш LRU) или MemCache, временно сохраните данные связи, а затем сохраните их где-нибудь. Таким образом, даже если сервер выйдет из строя, вы все равно сможете восстановить данные из кеша при перезапуске сервера.
  2. Используйте PM2 или навсегда, чтобы отслеживать экземпляр Node.js и перезапускать его в случае сбоя.
  3. Держите сервер без состояния, чтобы не беспокоиться о хранении контекста клиента на сервере (главные или подчиненные процессы).
  4. Если это большое приложение, вы можете использовать nginx для балансировки нагрузки между экземплярами сервера, а также настроить его таким образом, чтобы он перекладывал нагрузку на другие серверы в случае сбоя.

Надеюсь это поможет.

person Saqib Naveed    schedule 17.07.2017