去发现生活中的美好,记录生活中的点点滴滴

rabbitmq常见问题及解决汇总

php admin 125℃

1、出现以下错误:

{amqp_error,precondition_failed,
            "parameters for queue 'device' in vhost '/' not equivalent",
            'queue.declare'}

分析:原因是发送方和接收方的rabbitMq配置不一致

将以下参数配置一致即可:

        queue,
        passive,
        durable,//durable:队列持久化,为了防止RabbitMQ在退出或者crash等异常情况下数据不会丢失,可以设置durable为true
        exclusive,//exclusive:排他队列,只对首次声明它的连接(Connection)可见,不允许其他连接访问,在连接断开的时候自动删除,无论是否设置了持久化
        auto_delete,//autoDelete:自动删除,如果该队列已经没有消费者时,该队列会被自动删除。这种队列适用于临时队列。
        nowait,
        arguments,
        ticket
//        $connection = new AMQPStreamConnection('127.0.0.1', 5672, 'guest', 'guest');
        $connection = AMQPStreamConnection::create_connection([$config]);
        $channel = $connection->channel();
        $channel->queue_declare($type, false, true, false, false);

2、将durable设置成true的时候,报以下错误:

PHP Warning:  Use of undefined constant SOCKET_EAGAIN - assumed 'SOCKET_EAGAIN' (this will throw an Error in a future version of PHP) in D:\WWW.....

分析:因为durable持久化,需要socket连接,所以需要PHP socket扩展,安装后即可使用。

转载请注明:永盟博客 » rabbitmq常见问题及解决汇总

喜欢 (1)