RabbitMQ是一个开源的基于AMQP(Advanced Message Queuing Protocol)标准,并且可靠性高的企业级消息系统,目前很多网站在用,包括reddit,Poppen.de等。
1. 安装RabbitMQ
sudo apt-get install rabbitmq-server
sudo /etc/init.d/rabbitmq-server start
2. 安装librabbitmq
sudo apt-get install mercurial
hg clone http://hg.rabbitmq.com/rabbitmq-c
cd rabbitmq-c
hg clone http://hg.rabbitmq.com/rabbitmq-codegen codegen
autoreconf -i && ./configure && make && sudo make install
3. 安装php-rabbit扩展
wget http://php-rabbit.googlecode.com/files/php-rabbit.r91.tar.gz
tar -zxvf php-rabbit.r91.tar.gz
cd php-rabbit.r91
/path/to/php/bin/phpize
./configure –with-amqp –with-php-config=/path/to/php/bin/php-config
make && sudo make install
编辑 php.ini 添加:
extension=rabbit.so
输出phpinfo看下是否扩展已经加载成功,have fun:)
<?php
/**
* producer demo
*
* @author wei
* @version $Id$
**/
$params = array('host' =>'localhost',
'port' => 5672,
'login' => 'guest',
'password' => 'guest',
'vhost' => '/');
$cnn = new AMQPConnect($params);
// declare Exchange
$exchange = new AMQPExchange($cnn);
$exchange->declare('ex1', 'topic', AMQP_DURABLE );
// declare Queue
$queue = new AMQPQueue($cnn);
$queue->declare('queue1', AMQP_DURABLE);
// bind Queue
$queue->bind('ex1','wei.#');
// publishing
$msg = "msg";
for ($i=0; $i < 100; $i++) {
$res = $exchange->publish($i . 'msg', 'wei.' . $i);
if ($res) {
echo $i . 'msg' . " Yes\n";
} else {
echo $i . 'msg' . " No\n";
}
}
?>
consumer:
?View Code PHP
<?php
/**
* consumer demo
*
* @author wei
* @version $Id$
**/
$params = array('host' =>'localhost',
'port' => 5672,
'login' => 'guest',
'password' => 'guest',
'vhost' => '/');
$cnn = new AMQPConnect($params);
// create the Queue
$queue = new AMQPQueue($cnn, 'queue1');
$queueMessages = $queue->consume(100);
foreach($queueMessages as $item) {
echo "$i.$item\n";
}
?>
参考:
http://www.rabbitmq.com/install.html
http://blog.ftofficer.com/2010/03/translation-rabbitmq-python-rabbits-and-warrens/
http://code.google.com/p/php-rabbit/
分享到:
相关推荐
【标题】:“TP6使用RabbitMQ” 在PHP框架ThinkPHP6(简称TP6)中集成RabbitMQ是一项常见的任务,用于实现异步处理、消息队列和分布式系统的通信。RabbitMQ是一个开源的消息代理和队列服务器,它遵循AMQP(Advanced...
在你提供的资料中,包含了使用`PhpAmqpLib`进行PHP连接RabbitMQ的示例,无需通过Composer来安装,这对于那些不熟悉或者无法使用Composer的环境来说非常实用。 `worker.php`通常是消费者脚本,它会监听RabbitMQ中的...
"PHP 中使用 RabbitMQ 实现消息队列" 在本文中,我们将介绍如何使用 PHP 语言与 RabbitMQ 实现消息队列的发送和接收。RabbitMQ 是一个消息队列系统,使用 AMQP(Advanced Message Queuing Protocol)协议来实现异步...
`rabbitmq-c`为PHP提供了一个接口,使得开发者能够在PHP应用程序中方便地使用RabbitMQ。 ### RabbitMQ简介 RabbitMQ的核心功能是作为消息的中间人,接收、存储并转发消息。它支持多种消息协议,其中AMQP是最常见的...
本篇文章将深入探讨如何在Beego框架下封装并使用RabbitMQ,以实现高效、可靠的通信。 首先,我们要了解RabbitMQ。RabbitMQ是一款开源的消息代理和队列服务器,它基于AMQP(Advanced Message Queuing Protocol)协议...
本教程以"rabbitmq+PHP"为主题,旨在帮助开发者深入理解如何在PHP项目中有效地集成和使用RabbitMQ。 首先,让我们了解RabbitMQ的基本概念。RabbitMQ是一个基于AMQP(Advanced Message Queuing Protocol)协议的开源...
在PHP中,可以使用php-amqplib库来实现与RabbitMQ的交互。首先,需要创建Connection,然后建立Channel。接着,定义Exchange类型,声明Queue,并使用Binding key将两者绑定。生产者通过Channel发布消息到Exchange,...
本教程将通过一个PHP操作RabbitMQ的实例——"RabbitMQ操作demo",来讲解如何在PHP环境中使用RabbitMQ。 首先,安装RabbitMQ是基础步骤。你需要在服务器上下载并安装RabbitMQ,这通常涉及访问其官方网站下载适合你...
在使用RabbitMQ-C和PHP AMQP扩展的过程中,需要注意的是版本兼容性。不同版本的RabbitMQ-C可能与不同版本的PHP或RabbitMQ服务器存在兼容性问题,因此在升级或安装新版本时,务必确认这些组件之间的兼容性。 总的来...
rabbitmq(MQ)全称为Message Queue, 消息队列是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而...
php版本:php7.3.*-ts-vc15 ...2.把文件rabbitmq.4.dll拷贝至:{php_path}/ 3.如果是apache解析,需再次把文件rabbitmq.4.dll拷贝至:{apache_path}/bin/ 4.php.ini文件内添加:extension=amqp
采用python编写的批量删除rabbitmq的队列或交换机。 1.修改rabbitmq_delete.py中rabbitmq的配置; 2.执行以下命令: 删除队列: python3 rabbitmq_delete.py -k ‘udata.climb’ -d 1 删除交换机: python3 rabbitmq_...
在本文中,我们将深入探讨如何在 Laravel 开发环境中使用 `rabbitmq-client`,这是一个基于 AMQP 协议的 RabbitMQ 客户端,为 Laravel 和 Lumen 提供了异步处理和 Direct RPC(远程过程调用)接口。RabbitMQ 是一个...
本教程将深入探讨如何使用PHP与RabbitMQ进行消息中间件系统的开发,帮助你理解和掌握这一重要技术。 RabbitMQ是一个开源的消息代理和队列服务器,它基于AMQP(Advanced Message Queuing Protocol)协议,被广泛应用...
MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。当前时间最新版本:2018-10-02,无需执行...
本篇主要讲解如何在Windows上安装并使用RabbitMQ的PHP扩展——`php_amqp`,特别是针对PHP 5.3线程安全(TS)版本的VC9编译的`php_amqp-1.2.0-5.3-ts-vc9-x86.dll`扩展。 首先,我们需要确保已经安装了RabbitMQ...
在 Laravel 项目中,你可以使用 Composer 来安装 `rabbitmq-laravel` 包: ```bash composer require spatie/laravel-rabbitmq ``` **三、配置** 在 `config/queue.php` 文件中添加 RabbitMQ 驱动配置。通常包括...
4. 现在可以使用`pecl/rabbitmq`等PHP库来编写代码,与RabbitMQ进行交互。 **编程示例:** ```php <?php $connection = new AMQPConnection(); $channel = $connection->channel(); $queue_name = 'my_queue'; $...
RabbitMQ是一款基于AMQP(Advanced Message Queuing Protocol)的消息中间件,由Erlang编程语言开发,具有高稳定性和跨平台特性,支持多种开发语言如Java、Python、.NET、PHP、Node.js、C++等。它提供了一个可复用的...