使用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 url 加密解密函数代码
Aug 26 PHP
php在线代理转向代码
May 05 PHP
解决php使用异步调用获取数据时出现(错误c00ce56e导致此项操作无法完成)
Jul 03 PHP
浅析ThinkPHP的模板输出功能
Jul 01 PHP
php生成zip文件类实例
Apr 07 PHP
PHP实现事件机制实例分析
Jun 26 PHP
在Debian系统下配置LNMP的教程
Jul 09 PHP
php 如何设置一个严格控制过期时间的session
May 05 PHP
PHP长网址与短网址的实现方法
Oct 13 PHP
thinkphp5.1 文件引入路径问题及注意事项
Jun 13 PHP
PHP实现的解汉诺塔问题算法示例
Aug 06 PHP
PHP时间戳和日期相互转换操作实例小结
Dec 18 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
php4的session功能评述(一)
2006/10/09 PHP
ThinkPHP调用百度翻译类实现在线翻译
2014/06/26 PHP
php单例模式示例分享
2015/02/12 PHP
详解php中反射的应用
2016/03/15 PHP
php生成网页桌面快捷方式
2017/05/05 PHP
laravel model模型处理之修改查询或修改字段时的类型格式案例
2019/10/17 PHP
window.location.hash 使用说明
2010/11/08 Javascript
jquery.artwl.thickbox.js  一个非常简单好用的jQuery弹出层插件
2012/03/01 Javascript
jquery实现的可隐藏重现的靠边悬浮层实例代码
2013/05/27 Javascript
js调用打印机打印网页字体总是缩小一号的解决方法
2014/01/24 Javascript
js 左右悬浮对联广告特效代码
2014/12/12 Javascript
JavaScript中字符串分割函数split用法实例
2015/04/07 Javascript
jquery实现像栅栏一样左右滑出式二级菜单效果代码
2015/08/24 Javascript
js性能优化技巧
2015/11/29 Javascript
JavaScript 模块的循环加载实现方法
2015/12/13 Javascript
在其他地方你学不到的jQuery小贴士和技巧(欢迎收藏)
2016/01/20 Javascript
JavaScript设计模式之策略模式详解
2017/06/09 Javascript
使用vue与jquery实时监听用户输入状态的操作代码
2017/09/19 jQuery
JavaScript实现省份城市的三级联动
2020/02/11 Javascript
python通过smpt发送邮件的方法
2015/04/30 Python
Django中URLconf和include()的协同工作方法
2015/07/20 Python
Python中字符串的修改及传参详解
2016/11/30 Python
Python数据操作方法封装类实例
2017/06/23 Python
Python实现统计给定字符串中重复模式最高子串功能示例
2018/05/16 Python
Python爬虫包BeautifulSoup实例(三)
2018/06/17 Python
Python实现钉钉订阅消息功能
2020/01/14 Python
python中使用you-get库批量在线下载bilibili视频的教程
2020/03/10 Python
python中的时区问题
2021/01/14 Python
matplotlib之属性组合包(cycler)的使用
2021/02/24 Python
您附近的水疗和健康场所:Spafinder(美国)
2019/07/05 全球购物
大学生优秀的自我评价分享
2013/10/22 职场文书
前厅部经理岗位职责范文
2014/02/04 职场文书
工作会议方案
2014/05/21 职场文书
信访工作经验交流材料
2014/05/23 职场文书
2014党员学习习主席讲话思想汇报
2014/09/15 职场文书
六个好看实用的 HTML + CSS 后台登录入口页面
2022/04/28 HTML / CSS