有个项目后端有多个服务,然后服务之间通过curl请求,现在把各个服务放在同一服务器的不同端口上,然后前端请求的时候部分接口会出现503,猜测是服务直接相互调用时出现了问题。
通过资料查到说是php端口的问题,请求PHP文件时,交于后端过程PHPCGI解析处理(127.0.0.1:9000),等待响应。而在本地文件以CURL请求本地环境中PHP文件时,之前的PHP还在等待CURL后的结果,这时9000端口已经被占用。导致CURL一直在处于等待状态。
这个问题linux下是否会出现,到底是不是这个问题呢?
传入连接可以到多个连接到同一端口的,不应该存在占用问题。你是否启用了fastCGI呢?linux反正我是没遇到这种问题。如果某连接处理时间过长,那也只是那个连接等待而已,不会影响到其他连接。