-1

Unix マシンで実行する Web サーバーを構築しています。シナリオは次のとおりです。

ユーザーは自分の携帯電話を使用して写真を撮り、サーバーにアップロードできます。サーバーは画像処理実行可能ファイルを実行して画像を処理し (画像を認識し)、結果をユーザーの携帯電話に返します。

node.js はこのシナリオに適していますか? それとも他の技術が適していますか?

私の主な関心事は並行性です。画像処理実行可能ファイルは C++ で記述されたアプリケーションです。node.js からアプリを呼び出して結果を返したいだけです。しかし、node.js はマルチスレッドではありませんよね? これは、アップロードされた画像を次々に処理する必要があることを意味します。並行して行うことは可能ですか?

4

1 に答える 1

1

Node.JSは、C拡張機能を使用してバックグラウンドで動作できます。(hiredisのような多くのモジュールもCとしてコンパイルされています)。

Node.JSはイベント駆動型であり、それがシングルスレッドである理由でもあります。イベントはシングルスレッドであり、最初の操作が完了するのを待ってから別の操作を実行する必要がないため、I/Oまたはネットワーク遅延で何かを実行する並行タスクに非常に適しています。

Node.JSが適していないのは、画像処理や静的ファイルの提供など、CPUを集中的に使用する操作です。新しいプロセスをフォークすることでノードをスケーリングできます(ノードにはそれを行うためのクラスターライブラリがあります)が、各プロセス間で通信するためのチャネルが必要です。中央データを処理するためにredisをお勧めします。

于 2013-01-08T09:46:05.890 に答える