使用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采集速度探究总结(原创)
Apr 18 PHP
PHP 事务处理数据实现代码
May 13 PHP
在Windows系统上安装PHP运行环境文字教程
Jul 19 PHP
ThinkPHP中实例Model方法的区别说明
Aug 21 PHP
PHPEXCEL 使用小记
Jan 06 PHP
基于Zookeeper的使用详解
May 02 PHP
ThinkPHP分组下自定义标签库实例
Nov 01 PHP
PHP可变函数学习小结
Nov 29 PHP
PHP导出Excel实例讲解
Jan 24 PHP
php PDO判断连接是否可用的实现方法
Apr 03 PHP
php 删除指定文件夹的实例讲解
Jul 25 PHP
PHP+Redis 消息队列 实现高并发下注册人数统计的实例
Jan 29 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之数组学习
2011/05/29 PHP
php使用ob_start()实现图片存入变量的方法
2014/11/14 PHP
yii2.0实现pathinfo的形式访问的配置方法
2016/04/06 PHP
php网页版聊天软件实现代码
2016/08/12 PHP
PHP从零开始打造自己的MVC框架之路由类实现方法分析
2019/06/03 PHP
Yii框架连表查询操作示例
2019/09/06 PHP
List Information About the Binary Files Used by an Application
2007/06/11 Javascript
javascript 伪数组实现方法
2010/10/11 Javascript
ExtJs中gridpanel分组后组名排序实例代码
2013/12/02 Javascript
js jquery ajax的几种用法总结(及优缺点介绍)
2014/01/28 Javascript
原生的html元素选择器类似jquery选择器
2014/10/15 Javascript
js+jquery实现图片裁剪功能
2015/01/02 Javascript
js操作table元素实现表格行列新增、删除技巧总结
2015/11/18 Javascript
js实现简单的省市县三级联动效果实例
2016/02/18 Javascript
浅谈js的url解析函数封装
2016/06/28 Javascript
Angularjs 实现分页功能及示例代码
2016/09/14 Javascript
React-Native做一个文本输入框组件的实现代码
2017/08/10 Javascript
Javascript中toFixed计算错误(依赖银行家舍入法的缺陷)解决方法
2017/08/22 Javascript
vue语法之拼接字符串的示例代码
2017/10/25 Javascript
快速解决vue-cli在ie9+中无效的问题
2018/09/04 Javascript
ElementUI中el-tree节点的操作的实现
2020/02/27 Javascript
vue 使用lodash实现对象数组深拷贝操作
2020/09/10 Javascript
vue实现拖拽进度条
2021/03/01 Vue.js
python的dataframe和matrix的互换方法
2018/04/11 Python
python实现证件照换底功能
2019/08/20 Python
Scrapy框架基本命令与settings.py设置
2020/02/06 Python
Python 开发工具PyCharm安装教程图文详解(新手必看)
2020/02/28 Python
利用CSS3的3D效果制作正方体
2020/03/10 HTML / CSS
HTML5 Canvas渐进填充与透明实现图像的Mask效果
2013/07/11 HTML / CSS
美国50岁以上单身人士约会平台:SilverSingles
2018/06/29 全球购物
英文简历中的自我评价
2013/10/06 职场文书
生物专业个人自荐信范文
2013/11/29 职场文书
和解协议书
2014/04/16 职场文书
2015元旦家电促销活动策划方案
2014/12/09 职场文书
新闻稿格式范文
2015/07/18 职场文书
导游词之河北邯郸
2019/09/12 职场文书