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

RabbitMQ错误:fwrite():发送12字节失败,对等方重置了errno=104连接

东门晨
2023-03-14

我在Laravel 4.2应用程序中使用RabbitMQ库videlvalvaro/php amqplib,开始出现以下错误:

fwrite(): send of 12 bytes failed with errno=104 Connection reset by peer"

有人能提出任何可能导致这种情况的建议吗?

共有3个答案

姜钊
2023-03-14

我也有同样的问题。这个案例可以解决这个问题。您应该在ClassNameConsumer类中的方法“execute”中调用此方法。

对于php语言。

/**
 * Resolved problem - Connection reset by peer
 * @param AMQPMessage $msg
 */
public function keepAlive(AMQPMessage $msg)
{
    if (!isset($this->message->delivery_info['channel'])) {
        return;
    }

    /** @var AMQPChannel $channel */
    $channel = $msg->delivery_info['channel'];

    $pkt = new AMQPWriter();
    $pkt->write_octet(8);
    $pkt->write_short(0);
    $pkt->write_long(0);
    $pkt->write_octet(0xCE);

    $channel->getConnection()->write($pkt->getvalue());
}
宗政海
2023-03-14

我也有同样的问题。将预取计数设置为1对我来说很有效,因为我不关心性能与稳定性之间的小折衷。

$channel->basic_qos(0, 1, false);

语法:

basic_qos($prefetch_size, $prefetch_count, $a_global);
龚振濂
2023-03-14

“由对等方重置连接”是TCP/IP协议,相当于将手机重新挂上钩子。这比不回答、挂着一个电话更礼貌。但这并不是真正有礼貌的TCP/IP交谈者所期望的结果。(来自其他SO的回答)

所以你对此无能为力,这是服务器的问题。

但是您可以使用try... cat块来处理该异常:

try {
    $msg = new AMQPMessage('Hello World!');
    $channel->basic_publish($msg, '', 'hello');

} catch (Exception $e) {
    // handle exception
}
 类似资料:
  • 我的RabbitMQ使用者在处理带有以下错误的某些消息后崩溃: /usr/bin/php/var/www/mydomain/integration。我的域名。com/current/app/console rabbitmq:consumer-w段--env=prod [PhpAmqpLib\Exception\AMQPRuntimeException] 无效的帧类型65 rabbitmq:cons

  • 当使用Python2.7和从API检索数据时,我得到了错误

  • 我一直使用芹菜与Rabbitmq作为后端。每当我发送一个高负载(大约600-1000)的任务到Rabbitmq,我得到以下错误socket.error[Errno 104]连接重置由对等 我一直在使用的一个示例命令是: 这是我的客户。py发送一个任务,该任务在worker上执行给定的bash命令,并轮询超时秒的结果。 我还尝试使用此命令在一段时间间隔内发送负载。它仍然给出相同的错误 是什么导致了这

  • 问题内容: 我正在尝试从下面的网址中抓取数据。但是selenium有时会出错,有时会失败。 在极少数情况下,它可以正常工作, 并且在使用实际浏览器的Mac上,同一蜘蛛每次都能正常工作。因此,这与我的无关。 尝试了许多解决方案,例如在页面上等待获取选择器,隐式等待,使用selenium-requests传递正确的请求标头等,但似乎没有任何效果。 我使用的,与实现这一目标。操作系统是。 注意: 我有许

  • 我在RabbitMQ上犯了stainger错误。我发送了一些关于MQ和Php产品的信息,但出现了一些问题。我可以在出现异常“errno=104由对等方重置连接”的一分钟后发送消息。见下文: rabbitmq-3.6的版本。1,php-7.0版本。5,php amqp库的版本-“Videlavaro/php amqplib”:“~2.7 来自rabbitmq的日志:

  • 连接错误:写入套接字时出错104。连接由对等重置。 环境: ubuntu: 16.04 python: 3.6 PC总内存: 32G 我已经安装了redis'3.0.6'。 当您尝试插入500000个数据时,它会成功,但当您尝试插入4000万个大数据时,它会失败。 当尝试将Python数据帧插入redis时,由于容量太大而失败。 数据插入成功: 数据插入失败: ConnectionResetErr