本文 参考 https://www.jianshu.com/p/829f41b0700e
上文申明了 两个 队列 分别 与 两个交换机 一一对应
个别同学,可能希望代码尽量 简洁些. 这里将普通交换机 使用rabbitmq的默认交换机
定义普通队列时,配置好上述属性
<?php
namespace rabbitmq;
require_once './lib/vendor/autoload.php';
use PhpAmqpLib\Connection\AMQPStreamConnection;
use PhpAmqpLib\Message\AMQPMessage;
use PhpAmqpLib\Wire\AMQPTable;
header('Content-Type: text/html; charset=gb2312');
try{
//连接
$connection = new AMQPStreamConnection('xxx.com', 5672, 'admin', 123456,'/',true);
$channel = $connection->channel();
//定义普通队列
$channel->queue_declare(
'PHP-Queue',
false,
true,
false,
false,
false,
new AMQPTable([
'x-message-ttl'=>15000,
'x-dead-letter-exchange'=>'PHP-Dead-Exchange',
'x-dead-letter-routing-key'=>'PHP-Dead-Key'
])
);
//死信交换机
$channel->exchange_declare('PHP-Dead-Exchange','direct');
//死信队列
$channel->queue_declare('PHP-Dead-Queue');
//死信绑定
$channel->queue_bind('PHP-Dead-Queue','PHP-Dead-Exchange','PHP-Dead-Key');
//向普通队列发送消息
$message = new AMQPMessage('hello world');
$channel->basic_publish($message,'','PHP-Queue');
$channel->close();
$connection->close();
}catch (\Exception $exception){
echo "异常信息".$exception->getMessage();
}