RabbitMQ是一个开源的基于AMQP(Advanced Message Queuing Protocol)标准,并且可靠性高的企业级消息系统,目前很多网站在用,包括reddit,Poppen.de等。

  1. 1. 安装RabbitMQ
  2. sudo apt-get install rabbitmq-server
  3. sudo /etc/init.d/rabbitmq-server start
  1. 2. 安装librabbitmq
  2. sudo apt-get install mercurial
  3. hg clone http://hg.rabbitmq.com/rabbitmq-c
  4. cd rabbitmq-c
  5. hg clone http://hg.rabbitmq.com/rabbitmq-codegen codegen
  6. autoreconf -i && ./configure && make && sudo make install
  7. 3. 安装php-rabbit扩展
  8. wget http://php-rabbit.googlecode.com/files/php-rabbit.r91.tar.gz
  9. tar -zxvf php-rabbit.r91.tar.gz
  10. cd php-rabbit.r91
  11. /path/to/php/bin/phpize
  12. ./configure –with-amqp –with-php-config=/path/to/php/bin/php-config
  13. make && sudo make install
  14. 编辑 php.ini 添加:
  15. extension=rabbit.so
  16. 输出phpinfo看下是否扩展已经加载成功,have fun:)
  1. <?php
  2. /**
  3. * producer demo
  4. *
  5. * @author wei
  6. * @version $Id$
  7. **/
  8. $params = array('host' =>'localhost',
  9. 'port' => 5672,
  10. 'login' => 'guest',
  11. 'password' => 'guest',
  12. 'vhost' => '/');
  13. $cnn = new AMQPConnect($params);
  14. // declare Exchange
  15. $exchange = new AMQPExchange($cnn);
  16. $exchange->declare('ex1', 'topic', AMQP_DURABLE );
  17. // declare Queue
  18. $queue = new AMQPQueue($cnn);
  19. $queue->declare('queue1', AMQP_DURABLE);
  20. // bind Queue
  21. $queue->bind('ex1','wei.#');
  22. // publishing
  23. $msg = "msg";
  24. for ($i=0; $i < 100; $i++) {
  25. $res = $exchange->publish($i . 'msg', 'wei.' . $i);
  26. if ($res) {
  27. echo $i . 'msg' . " Yes\n";
  28. } else {
  29. echo $i . 'msg' . " No\n";
  30. }
  31. }
  32. ?>
  33. consumer:
  34. ?View Code PHP
  35. <?php
  36. /**
  37. * consumer demo
  38. *
  39. * @author wei
  40. * @version $Id$
  41. **/
  42. $params = array('host' =>'localhost',
  43. 'port' => 5672,
  44. 'login' => 'guest',
  45. 'password' => 'guest',
  46. 'vhost' => '/');
  47. $cnn = new AMQPConnect($params);
  48. // create the Queue
  49. $queue = new AMQPQueue($cnn, 'queue1');
  50. $queueMessages = $queue->consume(100);
  51. foreach($queueMessages as $item) {
  52. echo "$i.$item\n";
  53. }
  54. ?>

RabbitMQ php 使用的更多相关文章

  1. 消息队列——RabbitMQ学习笔记

    消息队列--RabbitMQ学习笔记 1. 写在前面 昨天简单学习了一个消息队列项目--RabbitMQ,今天趁热打铁,将学到的东西记录下来. 学习的资料主要是官网给出的6个基本的消息发送/接收模型, ...

  2. RabbitMq应用二

    在应用一中,基本的消息队列使用已经完成了,在实际项目中,一定会出现各种各样的需求和问题,rabbitmq内置的很多强大机制和功能会帮助我们解决很多的问题,下面就一个一个的一起学习一下. 消息响应机制 ...

  3. 如何优雅的使用RabbitMQ

    RabbitMQ无疑是目前最流行的消息队列之一,对各种语言环境的支持也很丰富,作为一个.NET developer有必要学习和了解这一工具.消息队列的使用场景大概有3种: 1.系统集成,分布式系统的设 ...

  4. RabbitMq应用一的补充(RabbitMQ的应用场景)

    直接进入正题. 一.异步处理 场景:发送手机验证码,邮件 传统古老处理方式如下图 这个流程,全部在主线程完成,注册->入库->发送邮件->发送短信,由于都在主线程,所以要等待每一步完 ...

  5. RabbitMq应用一

    RabbitMq应用一 RabbitMQ的具体概念,百度百科一下,我这里说一下我的理解,如果有少或者不对的地方,欢迎纠正和补充. 一个项目架构,小的时候,一般都是传统的单一网站系统,或者项目,三层架构 ...

  6. 缓存、队列(Memcached、redis、RabbitMQ)

    本章内容: Memcached 简介.安装.使用 Python 操作 Memcached 天生支持集群 redis 简介.安装.使用.实例 Python 操作 Redis String.Hash.Li ...

  7. 消息队列性能对比——ActiveMQ、RabbitMQ与ZeroMQ(译文)

    Dissecting Message Queues 概述: 我花了一些时间解剖各种库执行分布式消息.在这个分析中,我看了几个不同的方面,包括API特性,易于部署和维护,以及性能质量..消息队列已经被分 ...

  8. windows下 安装 rabbitMQ 及操作常用命令

    rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统.它遵循Mozilla Public License开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器,Rab ...

  9. RabbitMQ + PHP (三)案例演示

    今天用一个简单的案例来实现 RabbitMQ + PHP 这个消息队列的运行机制. 主要分为两个部分: 第一:发送者(publisher) 第二:消费者(consumer) (一)生产者 (创建一个r ...

  10. RabbitMQ + PHP (二)AMQP拓展安装

    上篇说到了 RabbitMQ 的安装. 这次要在讲案例之前,需要安装PHP的AMQP扩展.不然可能会报以下两个错误. 1.Fatal error: Class 'AMQPConnection' not ...

随机推荐

  1. JavaScript中typeof详解

    [范围]typeof返回值范围: typeof返回值对应 类型 结果 String "string" Number "number" Boolean " ...

  2. sublime在高分辨率屏幕下,左侧边栏字体问题

    因为新的笔记本是1920*1080分辨率的屏幕,在打开sublime的时候,侧边栏的文件夹名字会变得很小,虽然很清晰,但是太小了看起来很吃力, 如下图所示 网上找了很多的方法试了好久没有成功,一天闲下 ...

  3. Oracle初始安装内存设置参考

      预备知识 shared memory:共享内存段: 一个内存区域,可以被不同的进程读取.oracle使用它来构成sga.oracle使用以下三种方法来创建一个sga区: 1. 使用单个共享内存段. ...

  4. 用C#调用Windows API向指定窗口发送按键消息 z

    用C#调用Windows API向指定窗口发送 一.调用Windows API. C#下调用Windows API方法如下: 1.引入命名空间:using System.Runtime.Interop ...

  5. Power Desginer系列01【转摘】

    近期在做一个业务系统的分析和数据模型设计,工作这几年也做过好几个项目的数据库模型的设计,期间也算是积累了一定的经验吧,这次有机会就写写我的数据库模型设计过程与方法. 在 数据库设计中,设计的目标就是要 ...

  6. adore-ng笔记和Linux普通用户提权

    官网:https://github.com/trimpsyw/adore-ng 安装: [root@xuegod63 ~]# unzipadore-ng-master.zip [root@xuegod ...

  7. anisotropic filter

    各项异性 point一次sample 1 bilinear 一次sample 4 trilinear 一次sample 8   两个4按mipmaplevel混合 anisotropic 异性和同性 ...

  8. 服务器主机上RAID Card的Write Caching Policy

    在Cisco Server的DRAC中, 创建virtual drive时, 会看到下面的选项.   那么Write back, write through, write back bad BBU之间 ...

  9. 浅析GitLab Flow的十一个规则

    使用 Git 版本控制,是对使用它之前的所有版本控制方式的一种改进.然而,很多组织最终以太过混乱或过于复杂的流程来结束.这个问题对于刚从其他版本控制系统转过来的组织来说特别突出. 在本文中我们会列出 ...

  10. (剑指Offer)面试题42:翻转单词顺序

    题目: 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变.为简单起见,标点符号和普通字母一样处理. 例如输入字符串“I am a student.”,则输出"student. ...