RabbitMQ 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";
- }
- ?>
RabbitMQ php 使用的更多相关文章
- 消息队列——RabbitMQ学习笔记
消息队列--RabbitMQ学习笔记 1. 写在前面 昨天简单学习了一个消息队列项目--RabbitMQ,今天趁热打铁,将学到的东西记录下来. 学习的资料主要是官网给出的6个基本的消息发送/接收模型, ...
- RabbitMq应用二
在应用一中,基本的消息队列使用已经完成了,在实际项目中,一定会出现各种各样的需求和问题,rabbitmq内置的很多强大机制和功能会帮助我们解决很多的问题,下面就一个一个的一起学习一下. 消息响应机制 ...
- 如何优雅的使用RabbitMQ
RabbitMQ无疑是目前最流行的消息队列之一,对各种语言环境的支持也很丰富,作为一个.NET developer有必要学习和了解这一工具.消息队列的使用场景大概有3种: 1.系统集成,分布式系统的设 ...
- RabbitMq应用一的补充(RabbitMQ的应用场景)
直接进入正题. 一.异步处理 场景:发送手机验证码,邮件 传统古老处理方式如下图 这个流程,全部在主线程完成,注册->入库->发送邮件->发送短信,由于都在主线程,所以要等待每一步完 ...
- RabbitMq应用一
RabbitMq应用一 RabbitMQ的具体概念,百度百科一下,我这里说一下我的理解,如果有少或者不对的地方,欢迎纠正和补充. 一个项目架构,小的时候,一般都是传统的单一网站系统,或者项目,三层架构 ...
- 缓存、队列(Memcached、redis、RabbitMQ)
本章内容: Memcached 简介.安装.使用 Python 操作 Memcached 天生支持集群 redis 简介.安装.使用.实例 Python 操作 Redis String.Hash.Li ...
- 消息队列性能对比——ActiveMQ、RabbitMQ与ZeroMQ(译文)
Dissecting Message Queues 概述: 我花了一些时间解剖各种库执行分布式消息.在这个分析中,我看了几个不同的方面,包括API特性,易于部署和维护,以及性能质量..消息队列已经被分 ...
- windows下 安装 rabbitMQ 及操作常用命令
rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统.它遵循Mozilla Public License开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器,Rab ...
- RabbitMQ + PHP (三)案例演示
今天用一个简单的案例来实现 RabbitMQ + PHP 这个消息队列的运行机制. 主要分为两个部分: 第一:发送者(publisher) 第二:消费者(consumer) (一)生产者 (创建一个r ...
- RabbitMQ + PHP (二)AMQP拓展安装
上篇说到了 RabbitMQ 的安装. 这次要在讲案例之前,需要安装PHP的AMQP扩展.不然可能会报以下两个错误. 1.Fatal error: Class 'AMQPConnection' not ...
随机推荐
- S3C2440上LCD驱动(FrameBuffer)实例开发讲解
一.开发环境 主 机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand, Kernel:2.6.30.4 编译器:arm-linux-gcc-4.3.2 二.背景知识 ...
- 【提醒】使用 iptables 时,特别注意 规则的顺序
在 centos 上安装 redis 服务器,很快就搞定了,服务器上使用 redis-cl 测试都没有问题了. 但到宿主机上测试,怎么测试都不通过,关键是:关闭了 centos 的 Iptables ...
- 初识小米Minos
1. Minos框架的基本介绍 小米公司不仅仅在搞手机以及MIUI rom的研发工作,云计算.虚拟化以及Hadoop也是小米现在在搞的东西,小米与2012年下半年成立了自己的Hadoop团队.介绍小米 ...
- linux下批量添加新用户
作为一个系统管理员,可能要经常的为机器添加用户,可能是在一台机器上添加很多用户,也有可能是在很多机器上要添加同一个用户. 基本上,批量添加用户有两种方式,一是用useradd + passwd命令配合 ...
- Meanshift,聚类算法(转)
原帖地址:http://www.cnblogs.com/liqizhou/archive/2012/05/12/2497220.html 记得刚读研究生的时候,学习的第一个算法就是meanshif ...
- 高版本teamview的成为被控制端时,会一直出现“正在初始化显示参数”
故障现象:高版本teamview的成为被控制端时,控制端会一直出现“正在初始化显示参数”,如图是teamview13作为服务器端,控制端连接一直出现这个情况 做好的解决办法: 把被控制端的teamvi ...
- webshell三剑客[aspxspy、phpspy、jspspy]
ASPSPY:http://www.rootkit.net.cn/article.asp?id=132<已关闭> 下载:ASPXspy2 JSPSPY:http://www.forjj.c ...
- [置顶] 一个Web报表项目的性能分析和优化实践(一):小试牛刀,统一显示SQL语句执行时间
最近,在开发和优化一个报表型的Web项目,底层是Hibernate和MySQL. 当报表数据量大的时候,一个图表要花4秒以上的时间. 以下是我的分析和体会. 1.我首先需要知道哪些函数执行了多少时间 ...
- TextView子类的常用属性
TextView常见的子类包括EditText,Button,CheckBox, RadioButton等. 1.EditText EditText继承自TextView,因此TextView所有属性 ...
- 转:Tortoise SVN 版本控制常用操作知识
转自:http://www.cnblogs.com/csharp4/archive/2010/11/26/1889317.html 今天老大跑过来问我如何把SVN服务器上的当前版本回退到某一个版本上去 ...