使用PHP访问RabbitMQ消息队列

来源:互联网 发布:马鞍山网络大学招聘 编辑:程序博客网 时间:2024/05/24 02:38
扩展安装


PHP访问RabbitMQ实际使用的是AMQP协议,所以我们只要安装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


交换建立


<?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);

}


http://www.wuweixin.com/2013/06/04/php-rabbitmq-amqp-extension/

0 0
原创粉丝点击