多くの学生はnodejsのことを聞いて、サーバーでJavaScriptを実行できることを知っているかもしれませんが、その使用シナリオについてはあまり明確ではないかもしれません。最近、彼らはnodejsも学んでいるので、私は要約をしました。
nodejsの利点:
サーバー側の言語がたくさんあります(PHP、Java、ASP.NET)。問題は何ですか?現在のサーバー側の言語は、ユーザーがサーバーにアクセスするときに各ユーザーリンクのスレッドを作成しますが、各スレッドは約2mのメモリを消費します。 8Gメモリを持つサーバーが約4,000人のユーザーをリンクできる場合。ユーザーの数に多数のリンクがある場合、サーバーの数を増やす必要があります。さらに、ユーザーが同時にリンクする多くの方法(アプリ、Webページなど)がサーバー共有の問題を伴うため、サーバーが同時にユーザーの最大数をサポートする方法が問題になります。
NodeJSは、クライアントからサーバーへのリンクメソッドを変更して、この問題を解決しました。クライアントごとに新しいスレッドは作成されませんが、クライアントリンクごとに内部で処理されたイベントを開始します。したがって、nodejsには、最大数万人のユーザーのクライアントリンクを同時に処理する機能があります。
nodejsは、開発アプリケーションに適しています。
アプリケーションが多数の同時入力/出力を処理する必要があり、クライアントに応答を送信する前にアプリケーション内で非常に複雑な処理を必要としない場合、アプリケーション開発にnodejsを使用することを検討する必要があります。
1。チャットサーバー:チャットがたくさんある場合、ユーザーとサーバーの間の同時リンクは大きいですが、サーバー上のデータ処理は複雑ではありません。
2。包括的なサービスWebサイトとeコマースWebサイトのサーバー:このタイプのWebサイトのサーバー側では、1秒あたり最大数千のデータを受信し、これらのデータをデータベースに記述する必要があることがよくあります。 nodejsは、キューメカニズムを介してこれらのデータをキャッシュにすばやく書き込み、キャッシュ領域からデータを取り出して、個別の処理ごとにデータベースに書き込みます。別のサーバー(Apache ServerやTomcat Serverなど)の場合、これらのサーバーはI/Oメカニズムのブロックを使用しているため、各データをデータベースにしばらく記述する必要があります(そして、次のデータは次のものが記述される前に待機する必要があります)が、NodeJSは非ブロッキングI/Oメカニズムを使用して、データベースを使用してデータベースを使用することができます。
要約:
わずかに大きなシステムは、開発言語では処理できません。多くの場合、サーバー側の開発用のCやC ++、ビジネスロジック用のJava、フロントエンドディスプレイ用のPHPなど、いくつかのタイプと混合され、メッセージミドルウェアなども必要です。
nodejsは、サーバー側で迅速にプロトタイプを作成できます(C-SystemとJavaによって実行できることがわかり、パフォーマンスはまだ非常に高いことがわかります)。コードの量は比較的少なくなります。もう1つのポイントは、その構文の利点、JS閉鎖などですが、CPU集約型処理には適しておらず、回転することによってのみ解決できます。今回はQCONで誰かがこの研究結果を共有すると言われているので、あなたはそれに注意を払うことができます。
各言語には適切なフィールドがあります。すべてを解決するために言語を強制する必要はありません。他の言語の特性があります。常にトレードオフによってのみ目標があります。
これらはすべてシリーズで見られる要約です、私はそれらを修正したいと思っています