当前位置: 首页 > 知识库问答 >
问题:

PhpAmqpLib:未捕获异常“ErrorException”,消息为“fwrite():发送19个字节失败,错误号=104,由对等方重置连接”

封烈
2023-03-14

我的RabbitMQ使用者在处理带有以下错误的某些消息后崩溃:

/usr/bin/php/var/www/mydomain/integration。我的域名。com/current/app/console rabbitmq:consumer-w段--env=prod

[PhpAmqpLib\Exception\AMQPRuntimeException]
无效的帧类型65

rabbitmq:consumer[-m|--messages[messages][-r|--route[route][-l|--memory-limit[memory-limit][-d|--debug][-w |--无信号][-h |--help][-q |--quiet][-v | vv |--vv |--verbose][-version][-ansi][-no-ansi][-no-ansi][-n |--no-interaction][-s][-shell][-进程隔离|--env--env][no-debug]

PHP致命错误:在/var/www/mydomain/integration中出现未捕获异常“ErrorException”,消息为“fwrite():发送19个字节失败,错误号为104,由对等方重置连接”。我的域名。com/shared/vendor/php-amqplib/php-amqplib/PhpAmqpLib/Wire/IO/StreamIO。php:281堆栈跟踪:0[内部函数]:PhpAmqpLib\Wire\IO\StreamIO-

当前队列有大约30k条消息,但我将所有消息移到了一个新的队列中,然后使用空队列重试,错误仍然存在。

我有足够的空闲内存(180GB空闲RAM内存)

消费者在处理一些消息后崩溃,通常需要30分钟才能崩溃。

此队列只有一个使用者。

RabbitMQ配置是默认的。

我用的是Symfony2,mongodb和Debian Jessie。

另一个线索是,它总是在27秒或28秒后崩溃。

对此有什么想法吗?

谢谢

共有1个答案

端木兴国
2023-03-14

最好的方法是看看Rabbitmq服务器的日志中有什么,如果你可以访问它的话。

除此之外,通过脚本达到30秒执行时间时平均发生的事实来判断,我想建议您控制客户端的消息量,因为它看起来会被来自代理的消息数量窒息。

在phpamqplib方面,请尝试在声明队列后立即执行以下操作:

$channel->basic_qos(null, 10, null);

看看它是否有效。如果没有,我相信网络设置/环境是问题所在。

 类似资料: