`
vtrtbb
  • 浏览: 361477 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

RabbitMQ php 使用

    博客分类:
  • php
 
阅读更多

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

    【标题】:“TP6使用RabbitMQ” 在PHP框架ThinkPHP6(简称TP6)中集成RabbitMQ是一项常见的任务,用于实现异步处理、消息队列和分布式系统的通信。RabbitMQ是一个开源的消息代理和队列服务器,它遵循AMQP(Advanced...

    php 连接rabbitmq例子含PhpAmqpLib库

    在你提供的资料中,包含了使用`PhpAmqpLib`进行PHP连接RabbitMQ的示例,无需通过Composer来安装,这对于那些不熟悉或者无法使用Composer的环境来说非常实用。 `worker.php`通常是消费者脚本,它会监听RabbitMQ中的...

    用PHP收发RabbitMQ消息

    "PHP 中使用 RabbitMQ 实现消息队列" 在本文中,我们将介绍如何使用 PHP 语言与 RabbitMQ 实现消息队列的发送和接收。RabbitMQ 是一个消息队列系统,使用 AMQP(Advanced Message Queuing Protocol)协议来实现异步...

    php7可用 rabbitmq-c 插件

    `rabbitmq-c`为PHP提供了一个接口,使得开发者能够在PHP应用程序中方便地使用RabbitMQ。 ### RabbitMQ简介 RabbitMQ的核心功能是作为消息的中间人,接收、存储并转发消息。它支持多种消息协议,其中AMQP是最常见的...

    beego环境下 rabbitmq封装以及使用

    本篇文章将深入探讨如何在Beego框架下封装并使用RabbitMQ,以实现高效、可靠的通信。 首先,我们要了解RabbitMQ。RabbitMQ是一款开源的消息代理和队列服务器,它基于AMQP(Advanced Message Queuing Protocol)协议...

    rabbitmq+PHP教程代码.rar

    本教程以"rabbitmq+PHP"为主题,旨在帮助开发者深入理解如何在PHP项目中有效地集成和使用RabbitMQ。 首先,让我们了解RabbitMQ的基本概念。RabbitMQ是一个基于AMQP(Advanced Message Queuing Protocol)协议的开源...

    一文读懂PHP使用RabbitMQ

    在PHP中,可以使用php-amqplib库来实现与RabbitMQ的交互。首先,需要创建Connection,然后建立Channel。接着,定义Exchange类型,声明Queue,并使用Binding key将两者绑定。生产者通过Channel发布消息到Exchange,...

    RabbitMQ操作demo

    本教程将通过一个PHP操作RabbitMQ的实例——"RabbitMQ操作demo",来讲解如何在PHP环境中使用RabbitMQ。 首先,安装RabbitMQ是基础步骤。你需要在服务器上下载并安装RabbitMQ,这通常涉及访问其官方网站下载适合你...

    rabbitmq-c-0.8.0

    在使用RabbitMQ-C和PHP AMQP扩展的过程中,需要注意的是版本兼容性。不同版本的RabbitMQ-C可能与不同版本的PHP或RabbitMQ服务器存在兼容性问题,因此在升级或安装新版本时,务必确认这些组件之间的兼容性。 总的来...

    RabbitMQ客户端的PHP库.zip

    rabbitmq(MQ)全称为Message Queue, 消息队列是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而...

    windows php7.3-ts-vc15-rabbitmq-amqp.zip

    php版本:php7.3.*-ts-vc15 ...2.把文件rabbitmq.4.dll拷贝至:{php_path}/ 3.如果是apache解析,需再次把文件rabbitmq.4.dll拷贝至:{apache_path}/bin/ 4.php.ini文件内添加:extension=amqp

    批量删除rabbitmq的队列或交换机

    采用python编写的批量删除rabbitmq的队列或交换机。 1.修改rabbitmq_delete.py中rabbitmq的配置; 2.执行以下命令: 删除队列: python3 rabbitmq_delete.py -k ‘udata.climb’ -d 1 删除交换机: python3 rabbitmq_...

    Laravel开发-rabbitmq-client

    在本文中,我们将深入探讨如何在 Laravel 开发环境中使用 `rabbitmq-client`,这是一个基于 AMQP 协议的 RabbitMQ 客户端,为 Laravel 和 Lumen 提供了异步处理和 Direct RPC(远程过程调用)接口。RabbitMQ 是一个...

    php整合rabbitmq进行消息中间件系统开发-php-rabbitmq.zip

    本教程将深入探讨如何使用PHP与RabbitMQ进行消息中间件系统的开发,帮助你理解和掌握这一重要技术。 RabbitMQ是一个开源的消息代理和队列服务器,它基于AMQP(Advanced Message Queuing Protocol)协议,被广泛应用...

    rabbitmq php插件

    MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。当前时间最新版本:2018-10-02,无需执行...

    RabbitMQ 的windows php 扩展php_amqp-1.2.0-5.3-ts-vc9-x86.dll

    本篇主要讲解如何在Windows上安装并使用RabbitMQ的PHP扩展——`php_amqp`,特别是针对PHP 5.3线程安全(TS)版本的VC9编译的`php_amqp-1.2.0-5.3-ts-vc9-x86.dll`扩展。 首先,我们需要确保已经安装了RabbitMQ...

    Laravel开发-rabbitmq-laravel

    在 Laravel 项目中,你可以使用 Composer 来安装 `rabbitmq-laravel` 包: ```bash composer require spatie/laravel-rabbitmq ``` **三、配置** 在 `config/queue.php` 文件中添加 RabbitMQ 驱动配置。通常包括...

    RabbitMQ 的windows php 扩展php_amqp-1.2.0-5.3-nts-vc9-x86.dll

    4. 现在可以使用`pecl/rabbitmq`等PHP库来编写代码,与RabbitMQ进行交互。 **编程示例:** ```php &lt;?php $connection = new AMQPConnection(); $channel = $connection-&gt;channel(); $queue_name = 'my_queue'; $...

    rabbitmq学习资料

    RabbitMQ是一款基于AMQP(Advanced Message Queuing Protocol)的消息中间件,由Erlang编程语言开发,具有高稳定性和跨平台特性,支持多种开发语言如Java、Python、.NET、PHP、Node.js、C++等。它提供了一个可复用的...

Global site tag (gtag.js) - Google Analytics