PHP Rabbitmq 报错Broken pipe

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP Rabbitmq 报错Broken pipe脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

fwrITe(): send of 13 bytes Failed with errno=32 broken piPE

fwrite(): send of 21 bytes Failed with errno=104 Connection reset by peer

 

用 rabbitmq 做消息队列时报上面的错误,当消费队列一启动,Unacked 瞬间达到好几百。经查:RabbitMQ服务器在短时间内发送大量的消息给Consumer,如果你没有来得及Ack的话,那么服务端会积压大量的UnAcked消息,而Consumer如果来不急处理也会处于假死或程序崩溃

后果就是Consmer崩溃后,UnAcked消息又ReQueue不断消耗MQ的资

 

解决方案:

PHP Rabbitmq 报错Broken pipe

$connection = new amQPStreamConnection(HOST,PORT,USER,PASS,VHOST);

$channel = $connection->channel();

$channel->queue_declare(‘qos_queue‘,false,true,false);

$channel->basic_qos(null,10,null); //加上这个就好了 这个10 就是Unacked 里面的值,表示预先取出多少值来消费  PRefetch_count

PHP Rabbitmq 报错Broken pipe

脚本宝典总结

以上是脚本宝典为你收集整理的PHP Rabbitmq 报错Broken pipe全部内容,希望文章能够帮你解决PHP Rabbitmq 报错Broken pipe所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。