javascript - 如果用AJAX频繁请求服务器,PHP会如何处理?
程序员文章站
2022-05-18 20:32:46
...
同一个接口,客户端短时间内发送两个AJAX请求。
当第一个请求还没返回的时候,发起第二个请求,服务器端的PHP是怎么处理?
当第一个请求还没返回的时候,发起第二个请求,服务器端的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框架.