【问题标题】:How node.js handles thousands of requests at the same time? Should other client need to wait?node.js 如何同时处理数千个请求?其他客户是否需要等待?
【发布时间】:2019-05-10 02:37:41
【问题描述】:

当服务器忙于处理每个请求的大操作时,node.js 如何处理数千个请求?其他客户端是否需要等到服务器完成每个请求的操作? 在下面的示例中,当我调用/big 后,服务器资源将完全忙碌。如果我立即致电/small,我该如何获得响应,因为它是单线程操作。

const express = require('express');
const app = express();

app.get('/small', (req, res, next) => {
  res.send('posts');
});

app.get('/big', (req, res, next) => {
  console.time('test');
  for (let i = 0; i < 100000; i++) {
    console.log(i);
  }
  res.send('comments');
  console.timeEnd('test');
});

app.listen(5555, '127.0.0.1', undefined, () => {
  console.log(`Listening to port 5555`);
});

【问题讨论】:

    标签: node.js express server


    【解决方案1】:

    NodeJs 在后台与单线程多线程异步工作。 Node JS 应用程序使用“单线程事件循环模型”架构来处理多个并发客户端。所以客户端不需要等待前面的请求完成。

    它使用回调而不是传统的“返回”。您可以阅读 Async await 以获取更多详细信息。 为了更好地理解,您可以观看此视频。 https://www.youtube.com/watch?v=KsjrN-T3ZCs

    【讨论】:

      猜你喜欢
      • 2016-05-27
      • 2013-11-17
      • 1970-01-01
      • 2019-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-16
      • 1970-01-01
      相关资源
      最近更新 更多