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.rpmyum 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