感谢支持
我们一直在努力

Ubuntu下PHP + 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=0; $i < 100; $i++) {
$res = $exchange->publish($i . ‘msg’, ‘wei.’ . $i);
if ($res) {
echo $i . ‘msg’ . ” Yes\n;
} else {
echo $i . ‘msg’ . ” No\n;
}
}
 
?>

consumer:


 

<?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($queueMessages as $item) {
echo $i.$item\n;
}
?>

赞(0) 打赏
转载请注明出处:服务器评测 » Ubuntu下PHP + RabbitMQ使用
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏