2

ノードには「クラスター」モジュールがあり、これを使用して、ワーカーの子をフォークする親プロセスを作成できます。ワーカーの子はすべて同じソケットでリッスンするため、それらの間 (および CPU 間) の負荷分散はカーネルで行われます。

このようなプロセスは、子供の死亡を監視し、代わりに新しい子供をフォークする必要があります。おそらく、指数関数的なバックオフが必要です。また、そのようなプロセスがすべての子の stdout を 1 つのファイルに集約し、stderr を別のファイルに集約し、SIGHUP をサポートしてこれらのファイルを (logrotate 用に) 再度開くことができれば、非常に便利です。

私の理解が正しければ、pm2はそれを行うことができます。ただし、pm2 以外に、それを行うための実証済みのモジュール/スクリプト/パッケージはありますか、それとも自分で作成する必要がありますか?

ノードを生産に移した企業は何をしますか?

4

1 に答える 1

0

Walmart は (少なくとも当初は) クラスタリングを使用せず、代わりに各マシンを単一ノード プロセスで実行することにしました。セットアップの要点は次のとおりです: https://gist.github.com/hueniverse/7686452

PM2 は、ノード アプリを複数の CPU に分散させたい場合に人気のある選択肢のようです。

ログの集約とローテーションに関しては、基本的な UNIXlogrotateが多く使用されると思います。

于 2014-05-27T04:21:47.080 に答える