ホームページ >ウェブフロントエンド >jsチュートリアル >Node.jsは何に適していますか? Node.jsを使用する利点は何ですか?

Node.jsは何に適していますか? Node.jsを使用する利点は何ですか?

寻∝梦
寻∝梦オリジナル
2018-09-05 15:29:228233ブラウズ

この記事では、node.jsの適した方向性について主に説明します。 Node.jsの利点は何ですか?具体的な内容については記事をご覧ください。

まず、node.js が何に適しているかについて話しましょう:

まず第一に、nodeJs はフロントエンド フルスタックの基礎であり、そのアプリケーション シナリオはフロントエンド ツールのスキャフォールディングと補助ツールから発展しました。 API レイヤー、プロキシ レイヤー、およびプロフェッショナルなバックエンド開発の中間まで。

最も価値があるのは API 中間層です。現在の大きな傾向は、ますます多くのビジネスがフロントエンドに押し出され、バックエンドはサービスの提供のみに焦点を当てていることです。非常に典型的で一般的な作業シナリオは、フロントエンドとバックエンドが連携するときに、進行状況の違いによりフロントエンドがバックエンド インターフェイスを待つ必要がある場合があります。

現時点では、nodeJs の中間層アプリケーションがこの問題をうまく解決できます。フロントエンドは、nodeJ を通じてデータの形式に同意し、フロントエンドのニーズに応じて独自のインターフェイスをカスタマイズし、データベース上で CRUD 操作をカプセル化し、独自のプロキシ サーバーやゲートウェイ サーバーを作成するなどできます。以前は、バックエンドがこれらのことを行うのを待つしかありませんでしたが、今では、nodeJs フロントエンドを通じて自分で行うことができるため、作業プロセスがより制御しやすくなります。

もちろん、これはフロントエンド開発者にとってもより高い要件を提示しますが、少なくともデータベース、アーキテクチャ設計、システム構造、ネットワーク アプリケーションの欠点をゆっくりと埋める必要があります。

定かではありませんが、NodeJs は元々バックエンド用に開発されたものですが、単純さ、非同期性、大量の同時実行性を求めて Java 言語が選択され、フロントエンドによって発見されて引き継がれたそうです。

そのため、フロントエンドでnodeJを実行すると、必然的にバックエンドが侵食され、バックエンドの開発構造と技術スタックはすでに非常に完成しているため、バックエンドは通常変更することを望まないため、実際にはnodeJに対する抵抗が何倍も高まりますバックエンドの保守主義から来ています。バックエンドは主にサービス、データ、基盤となるアプリケーションであるため、これは当然のことです。これらには安定性とセキュリティが必要であり、歴史的な問題があるため、新しいものは好まれません。

つまり、この段階では、多くの NodeJ アプリケーションがフロントエンドとバックエンドの間の橋渡しとなります。一般的に、歴史的な重荷のない新しい企業、スタートアップ、インキュベーション プロジェクトは、高速で効率的であるため、nodeJ を使用する傾向があります。

現在、基本的にすべてのフロントエンド アプリケーションには、React、vue、angular などの nodeJ の影があります。そのアプリケーション シナリオと雇用市場も非常に大きいため、nodeJ を学ぶことは、何ができるかではなく、何を行うかが重要です。表示できるスペースがもう 1 つあります。 (node.js についてさらに詳しく知りたい場合は、PHP 中国語 Web サイトの node.js ビデオ チュートリアル 列を参照してください)

次に、node.js を使用する利点について話しましょう:

はい、Node は、クライアントに応答する前に大量のトラフィックが発生すると予想される状況に最適ですが、必要なサーバー側のロジックと処理は必ずしも大量ではありません。優れたパフォーマンスの代表例とも言える Node の利点を 3 つまとめました。

1.RESTful API

RESTful API を提供する Web サービスは、いくつかのパラメーターを受け取り、それらを解析し、応答を結合し、そして、A 応答 (通常はテキストが少ない) をユーザーに返します。これは、数万の接続を処理できるようにノードを構築できるため、Node にとって理想的な状況です。それでも多くのロジックは必要ありません。基本的には、データベースからいくつかの値を検索し、それらを応答に組み立てるだけです。応答は少量のテキストであり、受信リクエストも少量のテキストであるため、トラフィックは高くならず、最も多忙な企業の API ニーズも 1 台のマシンで処理できます。

2.Twitter キュー

ツイートを受信して​​データベースに書き込む必要がある Twitter のような企業を想像してください。実際には、1 秒あたりほぼ数千件のツイートが到着するため、データベースがピーク時に必要な書き込み数をタイムリーに処理することは不可能です。ノードは、この問題の解決策の重要な部分になります。ご覧のとおり、Node は数万の受信ツイートを処理できます。それらは迅速かつ簡単にメモリ内のキューイング メカニズム (memcached など) に書き込まれ、そこから別のプロセスがそれらをデータベースに書き込むことができます。ここでのノードの役割は、ツイートを迅速に収集し、この情報を書き込みを担当する別のプロセスに渡すことです。別の設計 (通常の PHP サーバーがデータベース自体への書き込みを処理しようとする場合) を想像してみてください。データベース呼び出しがチャネルをブロックしているため、ツイートごとにデータベースへの書き込みに短い遅延が発生します。このように設計されたマシンは、データベースの遅延により、1 秒あたり 2000 件の受信ツイートしか処理できない可能性があります。 1 秒あたり 100 万件のツイートを処理するには、500 台のサーバーが必要になります。代わりに、Node はチャネルをブロックせずに各接続を処理し、できるだけ多くのツイートをキャプチャできるようにします。 50,000 件のツイートを処理できるノード マシンに必要なサーバーはわずか 20 台です。

3. ビデオゲームの統計

Call of Duty ゲームをオンラインでプレイしたことがある場合は、ゲームの統計を見るとすぐに何かに気づくでしょう。そのレベルの統計を生成するには、膨大な量の情報を追跡する必要があります。このようにして、何百万ものプレイヤーが同時にオンラインでプレイしており、彼らがゲーム内の異なる立場にいる場合、膨大な量の情報が非常に迅速に生成される可能性があります。 Node は、ゲームによって生成されたデータを取り込み、データの最小限のマージを実行し、データベースに書き込めるようにデータをキューに入れるため、このシナリオに最適なソリューションです。ゲーム内でプレイヤーが発射した弾丸の数を追跡するためにサーバー全体を使用するのはばかばかしいように思えます。Apache のようなサーバーを使用する場合は、いくつかの有益な制限があるかもしれませんが、代わりに、ゲームのすべての統計を追跡するために専用のサーバーを使用すると、データについては、Node を実行しているサーバーで行うのと同様に、賢明な選択のように思えます。

上記は、node.js の使用方法と、node.js の利点の紹介です (さらに内容を確認したい場合は、PHP 中国語 Web サイト node.js 中国語リファレンス マニュアル 列にアクセスしてください)。ご質問がございましたら、以下からお問い合わせください

[編集者のおすすめ]

node.jsの使い方は?わかりやすい言葉で、node.js のアプリケーション プロセスについて話しましょう:

node.js は何をしますか? Node.jsの10の応用シナリオの紹介

以上がNode.jsは何に適していますか? Node.jsを使用する利点は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。