本文實例講述了使用PHP訪問RabbitMQ消息隊列的方法,分享給大家供大家參考,具體如下.
擴展安裝
PHP訪問RabbitMQ實際使用的是AMQP協(xié)議,所以我們只要安裝epel庫中的php-pecl-amqp這個包即可
rpm -ivh http://mirror.neu.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install php-pecl-amqp
交換建立
- $connection = new AMQPConnection();
- $connection->connect();
- $channel = new AMQPChannel($connection);
- $exchange = new AMQPExchange($channel);
- $exchange->setName('exchange1');
- $exchange->setType('fanout');
- $exchange->declare();
隊列建立
- $connection = new AMQPConnection();
- $connection->connect();
- $channel = new AMQPChannel($connection);
- $queue = new AMQPQueue($channel);
- $queue->setName('queue1');
- $queue->declare();
隊列綁定
- $connection = new AMQPConnection();
- $connection->connect();
- $channel = new AMQPChannel($connection);
- $queue = new AMQPQueue($channel);
- $queue->setName('queue1');
- $queue->declare();
- $queue->bind('exchange1', 'routekey');
消息發(fā)送
- $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");
- }
消息接收
- $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);
- }
新聞熱點
疑難解答