使用PHP访问RabbitMQ消息队列的方法示例


Posted in PHP onJune 06, 2018

本文实例讲述了使用PHP访问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.rpm
yum install php-pecl-amqp

交换建立

<?php
$connection = new AMQPConnection();
$connection->connect();
$channel = new AMQPChannel($connection);
$exchange = new AMQPExchange($channel);
$exchange->setName('exchange1');
$exchange->setType('fanout');
$exchange->declare();

队列建立

<?php
$connection = new AMQPConnection();
$connection->connect();
$channel = new AMQPChannel($connection);
$queue = new AMQPQueue($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 = new AMQPConnection();
$connection->connect();
$channel = new AMQPChannel($connection);
$exchange = new AMQPExchange($channel);
$exchange->setName('exchange5');
$exchange->setType('fanout');
$exchange->declare();
for($i = 0; $i < 2000000; $i++) {
 $exchange->publish("message $i", "routekey");
}

消息接收

<?php
$connection = new AMQPConnection();
$connection->connect();
$channel = new AMQPChannel($connection);
$queue = new AMQPQueue($channel);
$queue->setName('queue1');
$queue->declare();
$queue->bind('exchange1', 'routekey');
while (true) {
  $queue->consume(function($envelope, $queue){
   echo $envelope->getBody(), PHP_EOL;
  }, AMQP_AUTOACK);
}

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
社区(php&amp;&amp;mysql)六
Oct 09 PHP
php下防止单引号,双引号在接受页面转义的设置方法
Sep 25 PHP
一个基于PDO的数据库操作类
Mar 24 PHP
国外十大最流行的PHP框架排名
Jul 04 PHP
php缓存技术详细总结
Aug 07 PHP
Linux下PHP加速器APC的安装与配置笔记
Oct 24 PHP
Thinkphp+smarty+uploadify实现无刷新上传
Jul 30 PHP
简单谈谈PHP中的include、include_once、require以及require_once语句
Apr 23 PHP
Smarty模板简单配置与使用方法示例
May 23 PHP
php进行ip地址掩码运算处理的方法
Jul 11 PHP
PHP实现Redis单据锁以及防止并发重复写入
Apr 10 PHP
php从数据库中获取数据用ajax传送到前台的方法
Aug 20 PHP
PHP简单实现记录网站访问量功能示例
Jun 06 #PHP
Laravel框架实现利用监听器进行sql语句记录功能
Jun 06 #PHP
Laravel框架实现利用中间件进行操作日志记录功能
Jun 06 #PHP
PHP实现的curl批量请求操作示例
Jun 06 #PHP
thinkPHP3.2.3实现阿里大于短信验证的方法
Jun 06 #PHP
Yii 访问 Gii(脚手架)时出现 403 错误
Jun 06 #PHP
PHP使用pdo连接access数据库并循环显示数据操作示例
Jun 05 #PHP
You might like
一个简单的php加密解密函数(动态加密)
2013/06/19 PHP
phpmyadmin config.inc.php配置示例
2013/08/27 PHP
smarty模板引擎使用内建函数foreach循环取出所有数组值的方法
2015/01/22 PHP
PHP关联数组实现根据元素值删除元素的方法
2015/06/26 PHP
JS获取IUSR_机器名和IWAM_机器名帐号的密码
2006/12/06 Javascript
Javascript的IE和Firefox兼容性汇编(zz)
2007/02/02 Javascript
jQuery 使用手册(五)
2009/09/23 Javascript
文本框获得焦点和失去焦点的判断代码
2012/03/18 Javascript
JavaScript实现GriwView单列全选(自写代码)
2013/05/13 Javascript
jquery实现树形二级菜单实例代码
2013/11/20 Javascript
jQuery设置与获取HTML,文本和值的简单实例
2014/02/26 Javascript
Js实现自定义右键行为
2015/03/26 Javascript
js遍历json的key和value的实例
2017/01/22 Javascript
微信端调取相册和摄像头功能,实现图片上传,并上传到服务器
2019/05/16 Javascript
jQuery zTree插件使用简单教程
2019/08/16 jQuery
Python中import导入上一级目录模块及循环import问题的解决
2016/06/04 Python
关于numpy中np.nonzero()函数用法的详解
2017/02/07 Python
python爬取m3u8连接的视频
2018/02/28 Python
详解Python如何生成词云的方法
2018/06/01 Python
selenium处理元素定位点击无效问题
2019/06/12 Python
python常用函数与用法示例
2019/07/02 Python
python写入文件自动换行问题的方法
2019/07/05 Python
Python循环结构的应用场景详解
2019/07/11 Python
tensorflow之变量初始化(tf.Variable)使用详解
2020/02/06 Python
python 函数中的参数类型
2020/02/11 Python
pytorch实现CNN卷积神经网络
2020/02/19 Python
使用Python项目生成所有依赖包的清单方式
2020/07/13 Python
Django中如何用xlwt生成表格的方法步骤
2021/01/31 Python
使用html5 canvas创建太空游戏的示例
2014/05/08 HTML / CSS
Roxy俄罗斯官方网站:冲浪和滑雪板的一切
2020/06/20 全球购物
阿里巴巴的Oracle DBA笔试题答案-SQL tuning类
2016/04/03 面试题
银行自荐信范文
2013/10/07 职场文书
学校募捐倡议书
2014/05/14 职场文书
2015年税务稽查工作总结
2015/05/26 职场文书
患者身份识别制度
2015/08/06 职场文书
2016年社区六一儿童节活动总结
2016/04/06 职场文书