私は個人的にクラスタマスターに部分的です。
https://github.com/isaacs/cluster-master
、それは非常に少ないのほかに、あなたのプロセスをフォークするためのロジックを追加し、あなたが実行しているプロセスの数を管理する能力、そして少しを与えないので、私はクラスタマスターが好きな理由がありますロギング/回復のブート!私は過度に肥大化したプロセス管理ライブラリが不安定になる傾向があり、場合によっては処理が遅くなることもあります。
以下に該当する場合、このライブラリはあなたのために良いだろう。
- あなたのモジュールは、あなたが
- イベントをトリガするイベントの異なる種類の膨大な量を持っていない
- 大部分は非同期ですその火災には少量の作業がありますが、同様のイベント(Webサーバなど)がたくさんあります。
上記の理由のために、threads-ag逆の理由から、あなたのために良いことがあります。あなたのコードにいくつかのスポットがあり、あなたのイベントループの中でたくさんの作業が必要な場合は、thread-a-gogoのようなものが、この作業のために特に「スレッド」を起動するようなものです。事前にどれくらい多くの労働者が産卵するのだろうか。注:多くのプロセスを起動すると、実際にはうまくいかないかもしれませんが、私は逃げ出します。
要約すると、モジュールが既にほとんど非同期である場合、本当に必要なのはワーカー・プールです。プロセスがイベントをリッスンしていないときの停止時間を最小限に抑え、使用できるプロセッサの量を最大限にする。あなたが非常にビジーな同期呼び出しを持たない限り、単一のノードイベントループは、プロセッサの単一のコアでさえも問題を抱えます。このような状況下では、クラスタマスターを使うのが最良です。私がお勧めするのは、少しベンチマークを行い、あなたのプログラムが "最悪のシナリオ"の下でどれくらいのコアを使用できるかを見ることです。これが1つのコアの33%であるとしましょう。クアッドコアマシンを使用している場合は、クラスタマスターに12人のワーカーを立ち上げるように指示します。
これが役に立った!
これらの多くは、おそらくClusterが利用できないときに開始されたか、まだ「実験的」とマークされているため、使用しないことを好みます。クラスタとドメインを持つワーカー・キューの実装は、forkメソッドよりも優れている可能性があります。 –
stable/usedワーカーキュー:zeroMQ –
zeromqのnodejsバインディングはありません。ノードサポート付きのlibを探しています。理想的には別のサーバーは必要ありません。軽いもの。 – mkoryak