-3

はいhello。私は最近、Node.jsがシングルスレッドであることを知りました。私は、スクリプトを実行しようとすると、私が多くのエラーを取得Node.jsを開始する並列処理のスレッドプール

#!/bin/bash 
node app.js & 
node app.js & 
node app.js & 
node app.js & 
node app.js & 
node app.js & 
node app.js & 
node app.js & 

(私はそれが8個のプロセッサを使用したい)私はより速く(MongoDBは/ Expressのアプリ)私のアプリケーションを使用したいので、私は次のスクリプトを書かれていますポートは使用されていますが、私はTCPが65536のポートを許可していることを知っています。それは8を使用しようとするべきです.Node.jsを新しいバージョンに更新する必要はありますか?

私はAmazon Linuxで動作しています。

ありがとうございます。

+0

これは、常に同じポートを使用するように設定されている可能性があります。 –

+4

node.js 'cluster'モジュールを使用して、同じポート上のすべての要求を処理するN個のプロセスを起動します。注:あなたのアプリケーションが適切な非同期I/Oで書かれていて、データベースにバインドされている(データベースがあなたの応答時間を制限しているなど)場合、より多くのプロセスを起動するのにはあまり役に立ちません。 Node.jsはシングルスレッドでも構いませんが、データベースは独自のプロセスであり、node.jsは適切な非同期I/Oコーディングを使用して一度に多くの要求を処理できます。 – jfriend00

答えて

4

各プロセスが同じポートでリスンしようとしています。ノードの組み込みクラスターモジュールを使用して、子プロセスの作成を処理する必要があります。これは、単一のポートをすべての子ノードが自動的に共有できるようにするためです。