node.jsでは、ネイティブコードである種の非同期操作を実行するまで、実際には一度に1つのリクエストのみが実行され(Javascriptインタープリターはシングルスレッドです)、別のリクエストがI/Oを待機している間に別のリクエストが実行を開始します。 。すべてのリクエストの対象となるリソースが限られている場合は、コードを介してリソースを取得するのに十分な距離にあるリクエストを確認するだけです。スケーラビリティを高めるためにサーバーをクラスター化する場合、各クラスターは1つのJavascriptスレッドを実行します。
各着信リクエストを、それが完全に完了する前に発生した他のすべてのリクエスト(実行可能な何か)までキューで待機させると、node.jsサーバーのスケーラビリティが大幅に低下し、ほとんどの場合、 I / O操作が実行されるのを待ってアイドル状態になっているため、それが正しい設計である可能性は低いと思われます。
ここでの通常のスキームは、リソースを要求するために通過する最初のリクエストにそれを持たせることです(複数のリソースが同時に実行されている場合でも)。これが常にサーバーに最初に到着したリクエストであるかどうかはわかりませんが、近くにあり、ユーザーコミュニティは、 2つのリクエストの処理速度。
共有リソース(データベースなど)にアクセスするコードが同時実行に対して安全であり、共有データについて厄介な仮定をしないことを確認する必要があります。