RabbitMQ,可能有人还不知道是用来干嘛的吧

编程

什么是MQ?

MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取队列中的消息。

RabbitMQ就是MQ的一种,本文介绍了使用PHP访问RabbitMQ消息队列的方法,结合实例形式分析了RabbitMQ消息队列的相关扩展安装、队列建立、队列绑定、消息发送、消息接收等相关操作技巧,需要的朋友可以参考下

扩展安装

PHP访问RabbitMQ实际使用的是AMQP协议,所以我们只要安装epel库中的php-pecl-amqp这个包即可

rpm -ivh http://mirror.neu.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm

yum install php-pecl-amqp

交换建立

<?php

$connection=newAMQPConnection();

$connection->connect();

$channel=newAMQPChannel($connection);

$exchange=newAMQPExchange($channel);

$exchange->setName("exchange1");

$exchange->setType("fanout");

$exchange->declare();

队列建立

<?php

$connection=newAMQPConnection();

$connection->connect();

$channel=newAMQPChannel($connection);

$queue=newAMQPQueue($channel);

$queue->setName("queue1");

$queue->declare();

队列绑定

<?php

$connection = new AMQPConnection();

$connection->connect();

$channel = new AMQPChannel($connection);

$queue = new AMQPQueue($channel);

$queue->setName("queue1");

$queue->declare();

$queue->bind("exchange1", "routekey");

消息发送

<?php

$connection=newAMQPConnection();

$connection->connect();

$channel=newAMQPChannel($connection);

$exchange=newAMQPExchange($channel);

$exchange->setName("exchange5");

$exchange->setType("fanout");

$exchange->declare();

for($i=0;$i<2000000;$i++){

$exchange->publish("message $i","routekey");

}

消息接收

<?php

$connection=newAMQPConnection();

$connection->connect();

$channel=newAMQPChannel($connection);

$queue=newAMQPQueue($channel);

$queue->setName("queue1");

$queue->declare();

$queue->bind("exchange1","routekey");

while(true){

$queue->consume(function($envelope,$queue){

echo$envelope->getBody(),PHP_EOL;

},AMQP_AUTOACK);

}

看完是不是觉得很简单,这个做消息队列不难!

 

以上是 RabbitMQ,可能有人还不知道是用来干嘛的吧 的全部内容, 来源链接: utcz.com/z/517607.html

回到顶部