使用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面向对象的使用教程 简单数据库连接
Nov 25 PHP
PHP+Tidy-完美的XHTML纠错+过滤
Apr 10 PHP
PHP stristr() 函数(不区分大小写的字符串查找)
Jun 03 PHP
php变量范围介绍
Oct 15 PHP
ThinkPHP3.1新特性之命名范围的使用
Jun 19 PHP
PHP中实现crontab代码分享
Mar 26 PHP
php获取系统变量方法小结
May 29 PHP
使用PHP进行微信公众平台开发的示例
Aug 21 PHP
PHP编程开发怎么提高编程效率 提高PHP编程技术
Nov 09 PHP
Zend Framework入门教程之Zend_Registry组件用法详解
Dec 09 PHP
PHP大文件分割上传 PHP分片上传
Aug 28 PHP
MacOS下PHP7.1升级到PHP7.4.15的方法
Feb 22 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
香妃
2021/03/03 冲泡冲煮
PHP 页面跳转到另一个页面的多种方法方法总结
2009/07/07 PHP
PHP操作数组相关函数
2011/02/03 PHP
php中修改浏览器的User-Agent来伪装你的浏览器和操作系统
2011/07/29 PHP
php专用数组排序类ArraySortUtil用法实例
2015/04/03 PHP
PHP记录页面停留时间的方法
2016/03/30 PHP
Laravel5.1自定义500错误页面示例
2016/10/09 PHP
PHP抓取远程图片(含不带后缀的)教程详解
2016/10/21 PHP
判断页面是关闭还是刷新的js代码
2007/01/28 Javascript
JQuery AJAX提交中文乱码的解决方案
2010/07/02 Javascript
window.open关于浏览器拦截问题分析及解决方法
2013/02/05 Javascript
简介JavaScript中Boolean.toSource()方法的使用
2015/06/05 Javascript
JavaScript实现select添加option
2015/07/03 Javascript
json传值以及ajax接收详解
2016/05/24 Javascript
Vue-cli proxyTable 解决开发环境的跨域问题详解
2017/05/18 Javascript
从对象列表中获取一个对象的方法,依据关键字和值
2017/09/20 Javascript
3种vue路由传参的基本模式
2018/02/22 Javascript
vue-vuex中使用commit提交mutation来修改state的方法详解
2018/09/16 Javascript
Vue.js 中的实用工具方法【推荐】
2019/07/04 Javascript
微信小程序 冒泡事件原理解析
2019/09/27 Javascript
python编程羊车门问题代码示例
2017/10/25 Python
python中的字符串内部换行方法
2018/07/19 Python
python批量识别图片指定区域文字内容
2019/04/30 Python
Pytorch中的VGG实现修改最后一层FC
2020/01/15 Python
Python限制内存和CPU使用量的方法(Unix系统适用)
2020/08/04 Python
python 8种必备的gui库
2020/08/27 Python
Lookfantastic瑞典:英国知名美妆购物网站
2018/04/06 全球购物
使用useBean标志初始化BEAN时如何接受初始化参数
2012/02/11 面试题
Linux常见面试题
2016/10/04 面试题
教育科研先进个人材料
2014/01/26 职场文书
体现团队精神的口号
2014/06/06 职场文书
2014年社区妇联工作总结
2014/12/02 职场文书
一年级小学生评语大全
2014/12/25 职场文书
2015中学政教处工作总结
2015/07/22 职场文书
MongoDB balancer的使用详解
2021/04/30 MongoDB
CSS 鼠标选中文字后改变背景色的实现代码
2023/05/21 HTML / CSS