使用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 相关文章推荐
屏蔽浏览器缓存另类方法
Oct 09 PHP
fetchAll()与mysql_fetch_array()的区别详解
Jun 05 PHP
php中的filesystem文件系统函数介绍及使用示例
Feb 13 PHP
9段PHP实用功能的代码推荐
Oct 14 PHP
跟我学Laravel之请求(Request)的生命周期
Oct 15 PHP
PHP实现将浏览历史页面网址保存到cookie的方法
Jan 26 PHP
php字符串函数学习之substr()
Mar 27 PHP
PHP实现搜索相似图片
Sep 22 PHP
Yii2中cookie用法示例分析
Jul 18 PHP
基于win2003虚拟机中apache服务器的访问
Aug 01 PHP
PHP实现的抓取小说网站内容功能示例
Jun 27 PHP
php+js实现的无刷新下载文件功能示例
Aug 23 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 文章采集正则代码
2009/12/28 PHP
Javascript开发包大全整理
2006/12/22 Javascript
超强的IE背景图片闪烁(抖动)的解决办法
2007/09/09 Javascript
JavaScript中的Window窗口对象
2008/01/16 Javascript
左侧是表头的JS表格控件(自写,网上没有的)
2013/06/04 Javascript
js 单击式的下拉菜单效果实例
2013/08/13 Javascript
jquery右下角弹出提示框示例代码
2013/10/08 Javascript
JavaScript中的ArrayBuffer详细介绍
2014/12/08 Javascript
jQuery中:has选择器用法实例
2014/12/30 Javascript
H5用户注册表单页 注册模态框!
2016/09/17 Javascript
用jQuery实现可输入多选下拉组合框实例代码
2017/01/18 Javascript
canvas 绘制圆形时钟
2017/02/22 Javascript
浅析webpack 如何优雅的使用tree-shaking(摇树优化)
2017/08/16 Javascript
JS实现遍历不规则多维数组的方法
2018/03/21 Javascript
vue过滤器用法实例分析
2019/03/15 Javascript
理解JavaScript中的对象
2020/08/25 Javascript
Python中使用bidict模块双向字典结构的奇技淫巧
2016/07/12 Python
Python实现生成随机日期字符串的方法示例
2017/12/25 Python
Python字典遍历操作实例小结
2019/03/05 Python
python实现对象列表根据某个属性排序的方法详解
2019/06/11 Python
PyCharm 创建指定版本的 Django(超详图解教程)
2019/06/18 Python
Python+Pyqt实现简单GUI电子时钟
2021/02/22 Python
Python 批量刷博客园访问量脚本过程解析
2019/08/30 Python
介绍一下Java的事务处理
2012/12/07 面试题
成教毕业生自我鉴定
2013/10/23 职场文书
班组长岗位职责范本
2014/01/05 职场文书
校园达人秀策划书
2014/01/12 职场文书
中学生班主任评语
2014/01/30 职场文书
教研活动总结
2014/04/28 职场文书
语文教研活动总结
2014/07/02 职场文书
幼儿园小班见习报告
2014/10/31 职场文书
贫民窟的百万富翁观后感
2015/06/09 职场文书
演讲稿:态度决定一切
2019/04/02 职场文书
python - timeit 时间模块
2021/04/06 Python
css3带你实现3D转换效果
2022/02/24 HTML / CSS
SQL Server删除表中的重复数据
2022/05/25 SQL Server