使用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
Oct 09 PHP
PHP CKEditor 上传图片实现代码
Nov 06 PHP
PHP实现时间轴函数代码
Oct 08 PHP
基于PHP Socket配置以及实例的详细介绍
Jun 13 PHP
php之curl设置超时实例
Nov 03 PHP
PHP+jQuery+Ajax实现用户登录与退出
Apr 27 PHP
PHP+Javascript实现在线拍照功能实例
Jul 18 PHP
PHP实现简单汉字验证码
Jul 28 PHP
PHP扩展开发教程(总结)
Nov 04 PHP
java微信开发之上传下载多媒体文件
Jun 24 PHP
PHP版微信第三方实现一键登录及获取用户信息的方法
Oct 14 PHP
PHP使用GD库输出汉字的方法【测试可用】
Nov 10 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基于openssl的rsa加密解密示例
2016/07/11 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
2017/12/21 PHP
浅析PHP 中move_uploaded_file 上传中文文件名失败
2019/04/17 PHP
tp5递归 无限级分类详解
2019/10/18 PHP
jquery的颜色选择插件实例代码
2008/10/02 Javascript
使用jQuery判断IE浏览器版本的代码
2014/06/14 Javascript
JS中prototype的用法实例分析
2015/03/19 Javascript
在JavaScript中使用NaN值的方法
2015/06/05 Javascript
jQuery中text() val()和html()的区别实例详解
2016/06/28 Javascript
图解prototype、proto和constructor的三角关系
2016/07/31 Javascript
AngularJs Modules详解及示例代码
2016/09/01 Javascript
AngularJS改变元素显示状态
2017/04/20 Javascript
JavaScript中运算符规则和隐式类型转换示例详解
2017/09/06 Javascript
iview给radio按钮组件加点击事件的实例
2017/09/30 Javascript
在vue中实现简单页面逆传值的方法
2017/11/27 Javascript
JS排序算法之希尔排序与快速排序实现方法
2017/12/12 Javascript
vue cli2.0单页面title修改方法
2018/06/07 Javascript
微信小程序使用车牌号输入法的示例代码
2019/08/20 Javascript
《javascript设计模式》学习笔记七:Javascript面向对象程序设计组合模式详解
2020/04/08 Javascript
Python中Django发送带图片和附件的邮件
2017/03/31 Python
Python的CGIHTTPServer交互实现详解
2018/02/08 Python
老生常谈python中的重载
2018/11/11 Python
Python中的heapq模块源码详析
2019/01/08 Python
Python(PyS60)实现简单语音整点报时
2019/11/18 Python
解决tensorflow读取本地MNITS_data失败的原因
2020/06/22 Python
Python实现文件压缩和解压的示例代码
2020/08/12 Python
Python识别处理照片中的条形码
2020/11/16 Python
ProForm英国站点:健身房和健身器材网上商店
2019/06/05 全球购物
绢花、人造花和人造花卉:BLOOM
2019/08/07 全球购物
个人自我评价和职业目标
2014/01/24 职场文书
带病坚持工作事迹
2014/05/03 职场文书
文明礼仪标语
2014/06/13 职场文书
党课培训心得体会
2014/09/02 职场文书
我们的节日元宵节活动总结
2015/02/06 职场文书
于丹论语心得观后感
2015/06/15 职场文书
社区干部培训心得体会
2016/01/06 职场文书