私は、私がやっているプロジェクトにnode.jsを使い始めています。CPU負荷の高いタスクの子プロセスですか?
クライアントがリクエストを行うと、私のnode.jsサーバーは別のサーバーからjsonを取り出し、それをこのクライアントに配信される新しいjsonに再フォーマットします。しかし、ノードサーバーが他のサーバーから取得したjsonは、潜在的にかなり大きく、データの「マッサージ」がかなりCPUに集中する可能性があります。
私は過去数時間、node.jsがどのようにCPUのタスクに適していないのかを見てきました。私が見てきた主な応答は、子プロセス(基本的に.jsファイルがメインイベントループをブロックする可能性があるCPU集中型タスクを処理する、ノードの別のインスタンス)。
20,000人の同時ユーザーがいるとします。つまり、これらの子プロセスを実行しているときに20,000個のOSレベルのジョブが生成されます。
これはいい考えですか? (別のWebサーバーでは、同じプロセスで2万のスレッドが作成されます)。
子プロセスを実行する必要があるかどうかはわかりません。しかし、私は非ブロックCPU集約的な仕事をする必要があります。私が何をすべきかのアイデア?
jsonファイルをセグメント化し、サーバーごとに4つのノードインスタンスを作成し、2-5つのサーバーを作成しますか?今私は非常に拡張性とコスト効果の高いソリューションを持っていますか? ..おまえ、 – foreyez
それはより簡単です。 2〜5台のサーバーは膨大な量のスループットに対応しています。あなたがどこから来たのか分からない。 NodeJSは、システム内のノードのように使用するために構築されたもので、必要なものを実行するために最低限必要なものです。スケーラビリティのための事前解決されたソリューションではありませんが、それを使用して非常に優れたシステムを構築できます。 – miketheprogrammer