首页 > 编程 > PHP > 正文

phpamqp消息队列RabbitMQ交换器类型广播fanout(四)

2020-03-24 16:07:46
字体:
来源:转载
供稿:网友
  • fanout类型: 消息发送给绑定的交换机上所有的队列

    P是消息 X是交换机 红色格子是消息队列

    我们模拟代码测试如下验证:

    1、是否忽略routing_key

    2、发送给绑定交换机中的所有队列

    发送信息的代码:send.php

    <?php$connect =  new AMQPConnection();$connect->connect();$channel =  new AMQPChannel($connect);$exchange =  new AMQPExchange($channel);$exchange->setName('error');$exchange->publish("send message content",'routing_key');$connect->disconnect();?>


    接收信息的代码:receive.php

    <?php//链接$connect = new AMQPConnection();$connect->connect() || die('链接服务器失败');//通道$channel = new AMQPChannel($connect);//交换机$exchange = new AMQPExchange($channel);$exchange->setName('error');$exchange->setType(AMQP_EX_TYPE_FANOUT);$exchange->declare();//队列$queue = new AMQPQueue($channel);$queue->setName('queue_name');$queue->declare();$queue->bind('error', 'routing_key');while (true) {    $queue->consume('callback');}function callback($envelope, $queue) {    var_dump($envelope->getBody());    $queue->nack($envelope->getDeliveryTag());}?>

    1、验证 是否忽略routing_key

    send.php中routing_key改为其他的比如 routing_key_test 测试结果如下

    2、发送给绑定交换机中的所有队列

    receive.php复制创建文件receive_new.php并把receive_new.php中的queue_name 改为 queue_name_test

    这样我们测试交换机是否发送给了绑定这两个消息队列

    可以看出消息同时发送给两个队列

    PHP编程

    郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

  • 发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表