php---ubuntu下使用RabbitMQ

RabbitMQ是一个开源的基于AMQP(Advanced Message Queuing Protocol)标准,并且可靠性高的企业级消息系统,目前很多网站在用,包括reddit,Poppen.de等。

1. Ubuntu下安装RabbitMQ
sudo apt-get install rabbitmq-server
sudo /etc/init.d/rabbitmq-server start

2. 安装librabbitmq
sudo apt-get install mercurial
hg clone http://hg.rabbitmq.com/rabbitmq-c
cd rabbitmq-c
hg clone http://hg.rabbitmq.com/rabbitmq-codegen codegen
autoreconf -i && ./configure && make && sudo make install

3. 安装php-rabbit扩展
wget http://php-rabbit.googlecode.com/files/php-rabbit.r91.tar.gz
tar -zxvf php-rabbit.r91.tar.gz
cd php-rabbit.r91
/path/to/php/bin/phpize
./configure –with-amqp –with-php-config=/path/to/php/bin/php-config
make && sudo make install
编辑 php.ini 添加:
extension=rabbit.so
输出phpinfo看下是否扩展已经加载成功,have fun:)

4. Demo程序
producer:

<?php /** * producer demo * * @author wei * @version $Id$ **/
$params = array ( 'host' => 'localhost' , 'port' => 5672 , 'login' => 'guest' , 'password' => 'guest' , 'vhost' => '/' ) ;
$cnn = new AMQPConnect ( $params ) ;    // declare Exchange
$exchange = new AMQPExchange ( $cnn ) ;
$exchange -> declare ( 'ex1' , 'topic' , AMQP_DURABLE  ) ;    // declare Queue
$queue = new AMQPQueue ( $cnn ) ;
$queue -> declare ( 'queue1' , AMQP_DURABLE ) ;    // bind Queue
$queue -> bind ( 'ex1' , 'wei.#' ) ;    // publishing
$msg = "msg" ;  
for ( $i = ; $i < 100 ; $i ++ )
{
    $res = $exchange -> publish ( $i . 'msg' , 'wei.' . $i ) ;
     if ( $res )
     {
        echo $i . 'msg' . " Yes\n" ;
     } else {
         echo $i . 'msg' . " No\n" ;
     }
}
?>
 
 
 
<?php/** * consumer demo * * @author wei * @version $Id$ **/
$params=array('host'=>'localhost','port'=>5672,'login'=>'guest','password'=>'guest','vhost'=>'/');
$cnn=new AMQPConnect($params);   // create the Queue
$queue=new AMQPQueue($cnn,'queue1');
$queueMessages=$queue->consume(100);
foreach($queueMessagesas$item)
{
    echo"$i.$item\n";
}

?>


http://www.rabbitmq.com/download.html下载地址

你可能感兴趣的:(php---ubuntu下使用RabbitMQ)