使用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 相关文章推荐
Linux下ZendOptimizer的安装与配置方法
Apr 12 PHP
实用函数5
Nov 08 PHP
PHP文件读写操作之文件写入代码
Jan 13 PHP
MySQL的FIND_IN_SET函数使用方法分享
Mar 27 PHP
PHP页面间参数传递的四种方法详解
Jun 09 PHP
一个PHP的ZIP压缩类分享
May 04 PHP
PHP面向对象教程之自定义类
Jun 10 PHP
PHP使用json_encode函数时不转义中文的解决方法
Nov 12 PHP
PHP实现XML与数据格式进行转换类实例
Jul 29 PHP
smarty中改进truncate使其支持中文的方法
May 30 PHP
Zend Framework入门教程之Zend_Registry组件用法详解
Dec 09 PHP
php下的原生ajax请求用法实例分析
Feb 28 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中session退出登陆问题
2014/02/27 PHP
PHP使用JSON和将json还原成数组
2015/02/12 PHP
从刷票了解获得客户端IP的方法
2015/09/21 PHP
js中继承的几种用法总结(apply,call,prototype)
2013/12/26 Javascript
jquery.Ajax()方法调用Asp.Net后台的方法解析
2014/02/13 Javascript
jQuery 仿百度输入标签插件附效果图
2014/07/04 Javascript
JavaScript中使用stopPropagation函数停止事件传播例子
2014/08/27 Javascript
jQuery实现带有洗牌效果的动画分页实例
2015/08/31 Javascript
jQuery实现的指纹扫描效果实例(附演示与demo源码下载)
2016/01/26 Javascript
输入框点击时边框变色效果的实现方法
2016/12/26 Javascript
JavaScript中for循环的几种写法与效率总结
2017/02/03 Javascript
深入理解AngularJs-scope的脏检查(一)
2017/06/19 Javascript
Vue-Router进阶之滚动行为详解
2017/09/13 Javascript
jQuery Validate插件ajax方式验证输入值的实例
2017/12/21 jQuery
微信小程序排坑指南详解
2018/05/23 Javascript
jquery获取select选中值的文本,并赋值给另一个输入框的方法
2018/08/21 jQuery
vuejs实现折叠面板展开收缩动画效果
2018/09/06 Javascript
JS拖拽排序插件Sortable.js用法实例分析
2019/02/20 Javascript
PHP 502bad gateway原因及解决方案
2020/11/13 Javascript
Python访问纯真IP数据库脚本分享
2015/06/29 Python
python 格式化输出百分号的方法
2019/01/20 Python
pyqt5利用pyqtDesigner实现登录界面
2019/03/28 Python
Django使用unittest模块进行单元测试过程解析
2019/08/02 Python
Python列表解析操作实例总结
2020/02/26 Python
Python Matplotlib绘图基础知识代码解析
2020/08/31 Python
css3 中translate和transition的使用方法
2020/03/26 HTML / CSS
马克华菲官方商城:Mark Fairwhale
2016/09/04 全球购物
澳大利亚足球鞋和服装购物网站:Ultra Football
2018/10/11 全球购物
构造器Constructor是否可被override?
2013/08/06 面试题
银行领导证婚词
2014/01/11 职场文书
一年级家长会邀请函
2014/01/25 职场文书
小学生成长感言
2014/01/30 职场文书
家长给老师的感谢信
2015/01/20 职场文书
幼儿园端午节活动总结
2015/05/05 职场文书
教师思想工作总结2015
2015/05/13 职场文书
详解JVM系列之内存模型
2021/06/10 Javascript