RabbitMQ是一個開源的基於AMQP(Advanced Message Queuing Protocol)標準,而且可靠性高的企業級消息系統,目前不少網站在用,包括reddit,Poppen.de等。 php
Java代碼
- 1. 安裝RabbitMQ
- sudo apt-get install rabbitmq-server
- sudo /etc/init.d/rabbitmq-server start
Java代碼
- 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:)
Php代碼
- <?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:
- ?View Code PHP
-
- <?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";
- }
- ?>
參考:
http://www.rabbitmq.com/install.html
http://blog.ftofficer.com/2010/03/translation-rabbitmq-python-rabbits-and-warrens/
http://code.google.com/p/php-rabbit/ html