本文實例講述了使用PHP訪問RabbitMQ消息隊列的方法。分享給大家供大家參考,具體如下:
擴展安裝
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);}
希望本文所述對大家PHP程序設計有所幫助。
新聞熱點
疑難解答
圖片精選