使用PHP访问RabbitMQ消息队列

来源:互联网 发布:win10装ubuntu双系统 编辑:程序博客网 时间:2024/05/13 11:29

扩展安装

PHP访问RabbitMQ实际使用的是AMQP协议,所以我们只要安装epel库中的php-pecl-amqp这个包即可

rpm -ivh http://mirror.neu.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpmyum install php-pecl-amqp

交换建立

<?php$connection = new AMQPConnection();$connection->connect(); $channel = new AMQPChannel($connection); $exchange = new AMQPExchange($channel);$exchange->setName('exchange1');$exchange->setType('fanout');$exchange->declare();

队列建立

<?php$connection = new AMQPConnection();$connection->connect(); $channel = new AMQPChannel($connection); $queue = new AMQPQueue($channel);$queue->setName('queue1');$queue->declare();

队列绑定

<?php$connection = new AMQPConnection();$connection->connect(); $channel = new AMQPChannel($connection); $queue = new AMQPQueue($channel);$queue->setName('queue1');$queue->declare(); $queue->bind('exchange1', 'routekey');

消息发送

<?php$connection = new AMQPConnection();$connection->connect(); $channel = new AMQPChannel($connection); $exchange = new AMQPExchange($channel);$exchange->setName('exchange5');$exchange->setType('fanout');$exchange->declare(); for($i = 0; $i < 2000000; $i++) {  $exchange->publish("message $i", "routekey");}

消息接收

<?php$connection = new AMQPConnection();$connection->connect(); $channel = new AMQPChannel($connection); $queue = new AMQPQueue($channel);$queue->setName('queue1');$queue->declare(); $queue->bind('exchange1', 'routekey');while (true) {    $queue->consume(function($envelope, $queue){      echo $envelope->getBody(), PHP_EOL;    }, AMQP_AUTOACK);}
0 0