Resource temporarily unavailable[vendor/workerman/workerman/Worker.php:1761]

caojiayin1984
stream_socket_accept(): accept failed: Connection timed out
 stream_socket_accept(): accept failed: Resource temporarily unavailable
 stream_socket_accept(): accept failed: Connection timed out
 stream_socket_accept(): accept failed: Resource temporarily unavailable
 stream_socket_accept(): accept failed: Connection timed out
 stream_socket_accept(): accept failed: Connection timed out
 stream_socket_accept(): accept failed: Connection timed out
 stream_socket_accept(): accept failed: Connection timed out
 stream_socket_accept(): accept failed: Connection timed out

一台服务器通用内网址址连接过来后,就一直报这个错误
socket日志显示 一直报这个错误,客户端连接一会就报502 Bad Gateway
请问是配置出错误了吗?
用户通过(nginx+workerman)连接
 websocket监听地址 '0.0.0.0'
'registerAddress'       => '0.0.0.0:15701',
 //本机ip,分布式部署时使用内网ip
    'lanIp'                 => '192.168.1.27',
 
 
 
 

2408 4 0
4个回答

walkor

把所有的进程数调整为1试下。
调整完后截图下启动界面

caojiayin1984

[attach]2051[/attach]

[attach]2052[/attach]
[attach]2054[/attach]

 

  • 暂无评论
walkor

改成1个进程后看下是否有 
 
stream_socket_accept(): accept failed: Resource temporarily unavailable
 
这个报错

  • caojiayin1984 2019-05-23

    设置为1的时候不报这个错误,只要开多个就要报这个问题
    设置为1时,客户端还是一直出现502错误,服务器那边的连接也有问题

walkor

stream_socket_accept(): accept failed: Resource temporarily unavailable
 
 是因为惊群效应导致的,这个是已知的一种想象,本身不影响业务,原本只是一个warning,老版本workerman源码中用@抑制了错误输出,但是因为业务框架使用了set_error_handler导致抛出了这个错误。
 
请更新最新版本的workerman,新版本workerman不会因为业务调用set_error_handler导致抛出这个错误。
 
另外如果使用 php7, 设置 http://doc.workerman.net/worker/reuse-port.html 会彻底避免惊群效应。
 
502问题看起来并不是惊群效应导致的,你可以直接连接workemran试下,不通过nginx。
 
 

年代过于久远,无法发表回答
🔝