使用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 相关文章推荐
第三节 定义一个类 [3]
Oct 09 PHP
用header 发送cookie的php代码
Mar 16 PHP
在字符串指定位置插入一段字符串的php代码
Feb 16 PHP
用sql命令修改数据表中的一个字段为非空(not null)的语句
Jun 04 PHP
Drupal7连接多个数据库及常见问题解决
Mar 02 PHP
PHP加密解密函数详解
Oct 28 PHP
使用PHP similar text计算两个字符串相似度
Nov 06 PHP
实例讲解php数据访问
May 09 PHP
PHP中使用foreach()遍历二维数组的简单实例
Jun 13 PHP
如何修改Laravel中url()函数生成URL的根地址
Aug 11 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
Mar 02 PHP
laravel添加前台跳转成功页面示例
Oct 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
PHP排序之二维数组的按照字母排序实现代码
2011/08/13 PHP
解析php下载远程图片函数 可伪造来路
2013/06/25 PHP
Prototype最新版(1.5 rc2)使用指南(1)
2007/01/10 Javascript
javascript基础知识大全 便于大家学习,也便于我自己查看
2012/08/17 Javascript
express的中间件bodyParser详解
2014/12/04 Javascript
node.js入门实例helloworld详解
2015/12/23 Javascript
jQuery 常见小例汇总
2016/12/14 Javascript
Bootstrap 响应式实用工具实例详解
2017/03/29 Javascript
整理一些最近经常遇到的前端面试题
2017/04/25 Javascript
seajs中模块依赖的加载处理实例分析
2017/10/10 Javascript
解决vue this.$forceUpdate() 处理页面刷新问题(v-for循环值刷新等)
2018/07/26 Javascript
Vue中控制v-for循环次数的实现方法
2018/09/26 Javascript
React中this丢失的四种解决方法
2019/03/12 Javascript
微信小程序单选radio及多选checkbox按钮用法示例
2019/04/30 Javascript
Vue使用JSEncrypt实现rsa加密及挂载方法
2020/02/07 Javascript
node.js +mongdb实现登录功能
2020/06/18 Javascript
Postman参数化实现过程及原理解析
2020/08/13 Javascript
[01:04:01]2014 DOTA2华西杯精英邀请赛5 24 DK VS VG
2014/05/25 DOTA
[05:07]DOTA2英雄梦之声_第14期_暗影恶魔
2014/06/20 DOTA
[02:05]2014DOTA2西雅图邀请赛 老队长全明星大猜想谁不服就按进显示器
2014/07/08 DOTA
Python将xml和xsl转换为html的方法
2015/03/10 Python
python使用PyGame模块播放声音的方法
2015/05/20 Python
学习Python3 Dlib19.7进行人脸面部识别
2018/01/24 Python
对python字典过滤条件的实例详解
2019/01/22 Python
对pandas通过索引提取dataframe的行方法详解
2019/02/01 Python
对Python3使运行暂停的方法详解
2019/02/18 Python
django云端留言板实例详解
2019/07/22 Python
基于django传递数据到后端的例子
2019/08/16 Python
python爬虫容易学吗
2020/06/02 Python
Python高并发和多线程有什么关系
2020/11/14 Python
pycharm最新激活码有效期至2100年(亲测可用)
2021/02/05 Python
《长相思》听课反思
2014/04/10 职场文书
关于倡议书的范文
2015/04/29 职场文书
电话营销开场白
2015/05/29 职场文书
如何写好闭幕词
2019/04/02 职场文书
Python文件的操作示例的详细讲解
2021/04/08 Python