1

アルゴリズムを介して計算を提供する必要があります。開いているソケットごとに子プロセスを使用するようにアドバイスされています。これから行うことは、次のようなものです。

var spawn = require('child_process').spawn;
var child = spawn('node', ['algorithem.js']);

アルゴリズムプロセスに引数を送信する方法と結果を受信する方法を知っています。

私が懸念しているのは、いくつのソケット(各ソケットがプロセスを生成する)を持つことができるかということです。クラウドホスティングプロバイダーでこれを解決するにはどうすればよいですか?私のアプリが自動スケーリングされるように?

推奨されるノードjsクラウドホスティングプロバイダーは何ですか?

最後に、これは子プロセスを使用する際の優れたアプローチですか?

4

1 に答える 1

4

はい、これは、ノードで重い処理を行う必要がある場合の公正なアプローチです。ただし、新しいプロセスを開始するとオーバーヘッドが発生するため、注意してください。開くことができるソケット(ファイル記述子)の数は、オペレーティングシステムによって制限されます。Linuxでは、制限は、たとえばulimit -utilityを使用して確認できます。

ソケット/プロセスの心配の数を取り除く1つの代替アプローチは、別のアルゴリズム/計算サーバーを実行することです。このサーバーはN個のワーカースレッドを生成し、ソケットでリッスンする可能性があります。計算要求を受信すると、これは、たとえば、最初に使用可能なスレッドによってキューに入れられ、処理される可能性があります。このアプローチの利点は、計算サーバーを任意のマシンで実行できるため、ノードインスタンスのリソースを解放できることです。

于 2013-03-24T14:21:41.150 に答える