分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

PHP Rabbitmq ?报错Broken pipe

发布时间:2023-09-06 02:04责任编辑:白小东关键词:PHP

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的资源

解决方案:

$connection = new AMQPStreamConnection(HOST, PORT, USER, PASS, VHOST);$channel = $connection->channel();$channel->queue_declare(‘qos_queue‘, false, true, false, false);$channel->basic_qos(null, 10, null); //加上这个就好了 这个10 就是Unacked 里面的值,表示预先取出多少值来消费 ?prefetch_count

PHP Rabbitmq ?报错Broken pipe

原文地址:https://www.cnblogs.com/wangxusummer/p/9324359.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved