基於PHP使用rabbitmq實現消息隊列


1.從github上面獲取AMQP基於php的實現擴展

2.創建生產者 send.php

 1 require(__DIR__ . '/../protected/vendor/autoload.php');
 2 
 3 use PhpAmqpLib\Connection\AMQPStreamConnection;
 4 use PhpAmqpLib\Message\AMQPMessage;
 5 
 6 
 7 $connection = new AMQPStreamConnection('192.168.38.129', 5672, 'fanwq', 'ysq');
 8 $channel = $connection->channel();
 9 $channel->queue_declare('hello', false, false, false, false);
10 
11 $msg = new AMQPMessage($i.'-Hello World! --' . $_SERVER['SSH_CONNECTION']);
12 $channel->basic_publish($msg, '', 'hello');
13 echo " [{$i}] Sent 'Hello World!'\n";
14 $channel->close();
15 $connection->close();
View Code

3.創建消費者 receive.php

 1 require(__DIR__ . '/../protected/vendor/autoload.php');
 2 
 3 use PhpAmqpLib\Connection\AMQPStreamConnection;
 4 use PhpAmqpLib\Message\AMQPMessage;
 5 
 6 $connection = new AMQPStreamConnection('192.168.38.129', 5672, 'fanwq', 'ysq');
 7 $channel = $connection->channel();
 8 
 9 $channel->queue_declare('hello', false, false, false, false);
10 echo ' [*] Waiting for messages. To exit press CTRL+C', "\n";
11 $callback = function($msg) {
12     echo " [x] Received ", $msg->body, "\n";
13 };
14 
15 $channel->basic_consume('hello', '', false, true, false, false, $callback);
16 
17 while(count($channel->callbacks)) {
18     $channel->wait();
19 }
View Code

4.在cli模式下 分別執行 send.php  receive.php 可以看到如下:

說明生產 消費端均ok。

 

5.管理 查看隊列消息:安裝rabbitmq_management插件

【5-1】查看當前可用插件:

 

【5-2】 安裝啟用 rabbitmq_management插件

【5-3】進入rabbitmq_management管理端:http://192.168.38.129:15672/

【5-4】 guest用戶沒有權限 需要授權

rabbitmqctl set_user_tags guest monitoring 

rabbitmqctl set_user_tags guest management

 

【5-5】登陸成功

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM