2016-11-23 4 views
0

Ich entwerfe einen Cluster mit Knoten JS Server. Ich habe in der Dokumentation gelesen, dass das NodeJS-Clustering auf demselben Server aufgebaut ist, wobei hauptsächlich Worker-Prozesse entsprechend der Anzahl der Prozessoren des Servers verwendet werden. Meine Frage bezieht sich auf einen Failover-Mechanismus, mit dem meine Anwendung funktioniert, selbst wenn der Master-Prozess abstürzt.Nodejs Cluster Master Failover

Was ist die beste Vorgehensweise in dieser Situation?

Antwort

0

Ich kann Ihnen ein paar Vorschläge basierend auf den Node.js Projekten geben, an denen ich gearbeitet habe.

  1. Verwenden Sie einen Cache-Mechanismus wie Redis (verwenden Sie es als LRU-Cache) oder MemCache vorübergehend Kommunikationsdaten speichern und später irgendwo bestehen. Auf diese Weise können Sie selbst dann, wenn der Server abstürzt, immer noch Daten aus dem Cache wiederherstellen, wenn der Server neu gestartet wird.
  2. Verwenden Sie PM2 oder forever, um Ihre Node.js-Instanz zu überwachen und nach einem Absturz neu zu starten.
  3. Halten Sie Ihren Server statuslos, damit Sie sich keine Gedanken darüber machen müssen, wie der Clientkontext auf dem Server gespeichert wird (Master- oder Slave-Prozesse).
  4. Wenn es sich um eine große App handelt, können Sie nginx verwenden, um das Gleichgewicht zwischen Serverinstanzen zu laden und es so einzurichten, dass die Last im Falle eines Absturzes auf andere Server verlagert wird.

Hoffe, das hilft.

Verwandte Themen