赞
踩
怎么安装rabbitmq请查看之前课程,如果已经安装,请略过此步。
mkdir vendor
cd vendor
composer require php-amqplib/php-amqplib
- cd ../
- mkdir routing
- cd routing
- touch publish.php
- <?php
-
- require_once '../vendor/autoload.php';
-
-
- use PhpAmqpLib\Connection\AMQPStreamConnection;
- use PhpAmqpLib\Message\AMQPMessage;
-
- $v_host = 'order';
-
- $exc_name ='direct_log';
-
- $routing_key = 'warn';
-
- $connection = new AMQPStreamConnection('localhost',5672,'wangyulong','wangyulong',$v_host);
-
- $channel = $connection->channel();
-
-
- $channel->exchange_declare($exc_name,'direct',false,false,false);
-
- $data = 'this is '.$routing_key.' message';
-
- $msg = new AMQPMessage($data,['delivery_mode'=>AMQPMEssage::DELIVERY_MODE_PERSISTENT]);
-
-
- $channel->basic_publish($msg,$exc_name,$routing_key);
-
- $channel->close();
-
- $connection->close();
- touch error.php
- touch info.php
- touch warn.php
- vi error.php
- <?php
-
- require_once '../vendor/autoload.php';
-
- use PhpAmqpLib\Connection\AMQPStreamConnection;
-
- $v_host ='order';
-
- $exc_name = 'direct_log';
-
- $routing_key = 'error';
-
- $connection = new AMQPStreamConnection('localhost',5672,'wangyulong','wangyulong',$v_host);
-
- $channel = $connection->channel();
-
- $channel->exchange_declare($exc_name,'direct',false,false,false);
-
-
- list($queue_name,,) = $channel->queue_declare('',false,false,true,false);
-
- $channel->queue_bind($queue_name,$exc_name,$routing_key);
-
- $callback = function($msg){
- echo 'received ' ,$msg->body,"\n";
- $msg->ack();
- };
-
- $channel->basic_qos(null,1,null);
-
- $channel->basic_consume($queue_name,'',false,false,false,false,$callback);
-
- while($channel->is_open()){
- $channel->wait();
- }
-
- $channel->close();
-
- $connection->close();
- vi info.php
- <?php
-
- require_once '../vendor/autoload.php';
-
- use PhpAmqpLib\Connection\AMQPStreamConnection;
-
- $v_host ='order';
-
- $exc_name = 'direct_log';
-
- $routing_key = 'info';
-
- $connection = new AMQPStreamConnection('localhost',5672,'wangyulong','wangyulong',$v_host);
-
- $channel = $connection->channel();
-
- $channel->exchange_declare($exc_name,'direct',false,false,false);
-
-
- list($queue_name,,) = $channel->queue_declare('',false,false,true,false);
-
- $channel->queue_bind($queue_name,$exc_name,$routing_key);
-
- $callback = function($msg){
- echo 'received ' ,$msg->body,"\n";
- $msg->ack();
- };
-
- $channel->basic_qos(null,1,null);
-
- $channel->basic_consume($queue_name,'',false,false,false,false,$callback);
-
- while($channel->is_open()){
- $channel->wait();
- }
-
- $channel->close();
-
- $connection->close();
- vi warn.php
- <?php
-
- require_once '../vendor/autoload.php';
-
- use PhpAmqpLib\Connection\AMQPStreamConnection;
-
- $v_host ='order';
-
- $exc_name = 'direct_log';
-
- $routing_key = 'warn';
-
- $connection = new AMQPStreamConnection('localhost',5672,'wangyulong','wangyulong',$v_host);
-
- $channel = $connection->channel();
-
- $channel->exchange_declare($exc_name,'direct',false,false,false);
-
-
- list($queue_name,,) = $channel->queue_declare('',false,false,true,false);
-
- $channel->queue_bind($queue_name,$exc_name,$routing_key);
-
- $callback = function($msg){
- echo 'received ' ,$msg->body,"\n";
- $msg->ack();
- };
-
- $channel->basic_qos(null,1,null);
-
- $channel->basic_consume($queue_name,'',false,false,false,false,$callback);
-
- while($channel->is_open()){
- $channel->wait();
- }
-
- $channel->close();
-
- $connection->close();
- php error.php
- php info.php
- php warn.php
php publish.php
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。