环境1.安装rabbitphp使用安装包,直接安装composer安装php-amqplib/php-amqplib这个包用于连接mq服务器require_once__DIR__.'/vendor/autoload.php';使用PhpAmqpLib\Connection\AMQPStreamConnection;使用PhpAmqpLib\Exchange\AMQPExchangeType;使用PhpAmqpLib\Message\AMQPMessage;$connection=newAMQPStreamConnection("127.0.0.1",5672,"guest","guest","yedong_test");//连接到服务器$channel=$connection->channel();//创建通道创建交换$exchange="example_direct_exchange";/*name:$exchangetype:fanout交换类型passive:false//不检查是否存在同名交换durable:false//交换不会在服务器重启后存活//是否持久auto_delete:true//一旦通道关闭,交换将被删除。*/$channel->exchange_declare($exchange,AMQPExchangeType::DIRECT,false,true,true);3.创建队列//参数$queue='',//队列名$passive=false,//检查是否是村$durable=false,//是否持久$exclusive=false,//独占,①当前定义的队列是连接的channel是共享的,其他连接无法访问。②当连接关闭时,队列将被删除。$auto_delete=true,//空的自动删除$nowait=false,//$arguments=array(),$ticket=null$channel->queue_declare("test_queue_3",true,true,false,false,false,[],null);4.绑定queues和exchanges,生成routing_key$channel->queue_bind("example_direct_queue_2",$exchange,"routeTest1");5.向队列发送消息$msg=newAMQPMessage($i,['content_type'=>'text/plain','delivery_mode'=>2]);//2:持久化,重启不会丢失,默认1,重启会丢失$channel->basic_publish($msg,$exchange,"routeTest1");
