Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Rabbitmq 3.5.1发布速度慢_Php_Rabbitmq - Fatal编程技术网

Php Rabbitmq 3.5.1发布速度慢

Php Rabbitmq 3.5.1发布速度慢,php,rabbitmq,Php,Rabbitmq,我已经在我的pc和服务器上使用默认配置设置了rabbitmq,并注意到rabbitmq发布速率上有一个奇怪的行为,无论我将消息发布到rabbitmq的速度有多快,我的pc和服务器上的发布速率都保持在12/s,而这两个系统在ram和cpu的数量上完全不同 出于测试目的,我编写了一个超级简单的代码,将消息发布到rabbitmq上的队列中,再次看到12/s的发布速率 我认为这是荒谬的低,出版率肯定要高得多 我已经测试了持久和瞬时的交换和消息,但结果是一样的 如何提高发布率 代码如下: <?php

我已经在我的pc和服务器上使用默认配置设置了rabbitmq,并注意到rabbitmq发布速率上有一个奇怪的行为,无论我将消息发布到rabbitmq的速度有多快,我的pc和服务器上的发布速率都保持在12/s,而这两个系统在ram和cpu的数量上完全不同

出于测试目的,我编写了一个超级简单的代码,将消息发布到rabbitmq上的队列中,再次看到12/s的发布速率

我认为这是荒谬的低,出版率肯定要高得多

我已经测试了持久和瞬时的交换和消息,但结果是一样的

如何提高发布率

代码如下:

<?php
    for($i=1;$i<20000;$i++){
    $connection = new AMQPConnection('localhost', 5672, 'guest', 'guest');
        $channel = $connection->channel();
        $channel->exchange_declare('test', 'direct', false, false, false);
        $msg = new AMQPMessage('test '.$i);
        $channel->basic_publish($msg, 'test');
        $channel->close();
        $connection->close();
    }

避免每次迭代创建
连接
频道
交换
。相反 在迭代之前创建它们,并在循环之后关闭它们

它们是昂贵的操作(尤其是
连接
频道
)<应创建并重用代码>连接
频道

$connection = new AMQPConnection('localhost', 5672, 'guest', 'guest');
$channel = $connection->channel();
$channel->exchange_declare('test', 'direct', false, false, false);

for($i=1;$i<20000;$i++){
    $msg = new AMQPMessage('test '.$i);
    $channel->basic_publish($msg, 'test');
}
$channel->close();
$connection->close();
$connection=newamqpconnection('localhost',5672,'guest','guest');
$channel=$connection->channel();
$channel->exchange_declare('test','direct',false,false,false);
对于($i=1;$ibasic_publish($msg,'test');
}
$channel->close();
$connection->close();