2016-11-23 9 views
0

ノードJSサーバーを使用してクラスタを設計しています。私はNodeJSクラスタリングが同じサーバ上に作られていることを文書で読みます。サーバが持つプロセッサの数に応じて主にワーカープロセスを使います。 私の質問は、マスタプロセスがクラッシュした場合でもアプリケーションを動作させ続けることができるフェールオーバーメカニズムについてです。Nodejsクラスタマスターフェイルオーバー

この場合のベストプラクティスは何ですか?

答えて

0

私が取り組んできたNode.jsプロジェクトに基づいていくつかの提案をすることができます。

  1. Redis(LRUキャッシュとして使用する)のようなキャッシュメカニズムを使用するか、MemCacheが通信データを一時的に格納し、後でそれをどこかに保持します。この方法では、サーバーがクラッシュしても、サーバーの再起動時にキャッシュからデータを回復できます。
  2. PM2またはforeverを使用してNode.jsインスタンスを監視し、クラッシュ時に再起動します。
  3. サーバーにクライアントのコンテキスト(マスタープロセスまたはスレーブプロセス)を保存することを心配する必要がないように、サーバーをステートレスにしておきます。
  4. 大きなアプリケーションの場合は、nginxを使用してサーバーインスタンス間の負荷分散を行うことができます。また、クラッシュ時に他のサーバーに負荷を移すように設定することもできます。

これが役に立ちます。