欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

javascript - 如果用AJAX频繁请求服务器,PHP会如何处理?

程序员文章站 2022-05-18 20:32:46
...
同一个接口,客户端短时间内发送两个AJAX请求。
当第一个请求还没返回的时候,发起第二个请求,服务器端的PHP是怎么处理?

回复内容:

同一个接口,客户端短时间内发送两个AJAX请求。
当第一个请求还没返回的时候,发起第二个请求,服务器端的PHP是怎么处理?

现在市面上支持PHP的服务器程序普遍都是以多进程方式运行的,也就是同时会有多个PHP进程来处理请求。当一个请求还在处理中,又有请求到来时,会把这个请求交给其他的进程去处理。直到并发请求量超过设置的并发进程数量,才会进行排队等待。

拿PHP-FPM来说,其是一个C实现的内嵌PHP解释器的多进程FastCGI服务.一个工作进程在同一时刻只能accept处理一个请求,其他请求会进入到listen.backlog(默认值511)队列中排队等待处理.I/O密集操作配合Nginx可以分离到PHP-FPM特定的进程池进行操作,计算密集的操作的FPM进程数可以设为2倍CPU核心数,I/O密集的可以多点.所以用尽量少的PHP代码实现服务才能获得高性能,显然,现在很多PHP框架跟这点是背道而驰的,这应该也是为什么PHP之父并不喜欢框架,因为他开发PHP的初衷就是封装一套C的API方便Web开发,可以认为PHP就是C实现的Web框架.