美文网首页php
RabbitMQ基础学习(php)

RabbitMQ基础学习(php)

作者: ysp123 | 来源:发表于2018-10-29 23:45 被阅读0次

RabbitMQ:简单的消息中间件使用总结

1.消息发布步骤:

建立连接:$connection = new AMQPConnection(array('127.0.0.1','port'=>'5672','vhost'=>'/','login'=>'用户名','password'=>'密码'));

$connection->connect()  or die("连接失败 \r\n");

建立信道:$channel = new AMQPChannel();

建立交换机:$exchange = new AMQPExchange($channel);

                      $exchange->setName('交换机名称');

                     $exchange->setType('交换机类型'); (direct(AMQP_EX_TYPE_DIRECT)、topic(AMQP_EX_TYPE_TOPIC) 和 fanout(AMQP_EX_TYPE_FANOUT))

                      $exchange->setFlag(AMQP_DURABLE);

                      $exchange->declareExchnge();

新建队列:  $queue = new AMQPQueue($channel);

                    $queue->setName('队列名称');

                    $queue->setFlag(AMQP_DURABLE);

                    $queue->declareQueue();

通过route_key绑定交换机和队列:

                    $queue->bind('交换机名称',‘routeKey’);

发送消息: $exchange->publish("消息内容",'routeKey');

消息持久化发布:$exchange->publish("消息内容", 'routeKey', AMQP_NOPARAM, array('delivery_mode'=>2));

断开连接: $connection->disconnect();

2、消息订阅

建立连接  $connection = new AMQPConnection(array('127.0.0.1','port'=>'5672','vhost'=>'/','login'=>'用户名','password'=>'密码'));

$connection->connect() or die("连接失败 \r\n"); 

新建信道: $channel = new AMQPChannel();

新建交换机: $exchange = new AMQPExchange($channel);

                       $exchange->setName(‘交换机名称’);

                        $exchange->setType('交换机类型');  (direct(AMQP_EX_TYPE_DIRECT)、topic(AMQP_EX_TYPE_TOPIC) 和 fanout(AMQP_EX_TYPE_FANOUT))

                        $exchange->setFlag(AMQP_DURABLE);

                        $exchange->declareExchange();

新建队列: $queue = new AMQPQueue($channel);

                    $queue->setName('队列名称');

                    $queue->setFlag(AMQP_DURABLE);

                    $queue->declareQueue();

通过routeKey 绑定交换机和队列

                    $queue->bind('交换机名称', routeKey);

  订阅消息(阻塞)

                      while(true){

                            $queue->consume('perocess');

                    }    

                    function  perocess($event, $q){

                            $msg= $event->getBody();

                            echo $msg;

                              $q->ack($event->getDeliveryTag());  //手动发送ACK答应

                    }                

交换机fanout(AMQP_EX_TYPE_FANOUT)方式使用说明:fanout模式模式不像direct模式通过routingkey来进行匹配,而是会把消息发送到所以的已经绑定的队列中。

fanout模式中routeKey为空,不需要命名,订阅对象绑定后直接进行消费,不同的消费队列消费的是相同的数据。

交换机topic(AMQP_EX_TYPE_TOPIC)方式使用说明:通过设置不同的routeKey,队列绑定不同的routeKey,通过订阅不同的routeKey,处理不同的消息队列。

相关文章

  • RabbitMQ基础学习(php)

    RabbitMQ:简单的消息中间件使用总结 1.消息发布步骤: 建立连接:$connection = new AM...

  • php-rabbitMQ拓展安装

    一、PHP-rabbitMQ拓展安装 1.php-rabbitMQ拓展下载php-rabbitMQ拓展源码通过ph...

  • Mac PHP RabbitMQ 环境部署

    系统环境 安装RabbitMQ 安装PHP RabbitMQ驱动 PHP 使用 AMQP 协议( “Advance...

  • php极速开发源码包之super.rabbitmq

    前言 super.rabbitmq是php-super的子功能包,实现了php操作rabbitmq的源码封装,阅读...

  • RabbitMQ学习之(三)_Centos6下RabbitMQ

    安装rabbitmq-c依赖包 下载安装rabbitmq-c 安装PHP扩展 amqp 编辑php.ini文件,增...

  • 笔试面试

    轻松搞定 rabbitMQ rabbitMQ 的基本使用。PHP 程序员的技术成长规划 按照了解的很多 PHP/L...

  • 类的声明和语法

    1.达标和检测 学习PHP的面向对象,你需要具备PHP面向过程的相关基础,如不会,请先学习PHP基础部分. 面向对...

  • 好网站

    PHP内核探索深入理解PHP内核RabbitMQ从入门到精通

  • rabbit 消息推送

    1.首先需要安装PHP使用的RabbitMQ 包:php-amqplib composer require php...

  • PHP学习总结

    PHP自学计划记录 当前只学习了PHP的基础语法,没有涉及很多PHP内部提供的函数 学习目录:PHP自学计划-注释...

网友评论

    本文标题:RabbitMQ基础学习(php)

    本文链接:https://www.haomeiwen.com/subject/syoitqtx.html