新闻资讯

掌握最新资讯,了解关于我们的最新动态!
您当前位置首页 > 新闻资讯 > IDC圈

Nginx 多进程模型如何实现高并发

更新时间:2024-12-27 08:38

如果一个server采用一个进程负责一个request的方式,那么进程数就是并发数。那么显而易见的,就是会有很多进程

在等待中。等什么?最多的应该是等待网络传输。其缺点题主应该也感觉到了,此处不述。

     而nginx 的异步非阻塞工作方式正是利用了这点等待的时间。在需要等待的时候,这些进程就空闲出来待命了。因此表

现为少数几个进程就解决了大量的并发问题。

        nginx是如何利用的呢,简单来说:同样的4个进程,如果采用一个进程负责一个request的方式,那么,同时进来4个

request之后,每个进程就负责其中一个,直至会话关闭。期间,如果有第5个request进来了。就无法及时反应了,因为4

个进程都没干完活呢,因此,一般有个调度进程,每当新进来了一个request,就新开个进程来处理。

        nginx不这样,每进来一个request,会有一个worker进程去处理。但不是全程的处理,处理到什么程度呢?处理到可

能发生阻塞的地方,比如向上游(后端)服务器转发request,并等待请求返回。那么,这个处理的worker不会这么傻等

着,他会在发送完请求后,注册一个事件:“如果upstream返回了,告诉我一声,我再接着干”。于是他就休息去了。此

时,如果再有request 进来,他就可以很快再按这种方式处理。而一旦上游服务器返回了,就会触发这个事件,worker才

会来接手,这个request才会接着往下走。


成为冠星云会员,享受出众的上云实践机会和周到的尊贵服务!

立即注册