如果突发的大量请求到达node的服务器,nodejs是如何处理这些请求的?
发布于 10 年前 作者 yuyue007 10336 次浏览 最后一次编辑是 8 年前

RT

假设1w个请求过来,nodejs也会一个个的处理,虽然是异步的处理,但是面对这样大量的请求他会怎么做呢?

我想知道下运行的原理。

6 回复

之前看过这个,我想知道,如果在主线程中有巨量的请求发往event loop,会不会造成阻塞?

如果你的请求处理是cpu密集型肯定会阻塞,但是主线程不会阻塞

你可以开多进程,或者单进程。 1w个请求,取决于你要做什么,比如单进程:

  • 如果是1w个nodejs计算,循环100次+1,那就是1w个计算任务排队。
  • 如果是1w个数据库读取、1w个文件读取,nodejs依次初始化1w个任务,然后每个任务的读取任务会交给操作系统,nodejs处于等待和处理其他任务状态。操作系统完成任务把结果返回给nodejs,nodejs空闲的时候返回结果给客户端。

首先。。操作系统就会排队。。然后才轮到node来处理。

node采用事件驱动的方式,大量请求进来,node还是能保持这些请求的连接的。然后node的主线程开始处理调用。因为io已经使用了非阻塞IO,然后慢慢处理咯。。

肯定还是一个一个的处理,后面的处理不了就会超时。

回到顶部