使用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 相关文章推荐
多文件上传的例子
Oct 09 PHP
自动分页的不完整解决方案
Jan 12 PHP
PHP获取网站域名和地址的代码
Aug 17 PHP
php面向对象全攻略 (四)构造方法与析构方法
Sep 30 PHP
PHP 文件上传源码分析(RFC1867)
Oct 30 PHP
PHP-redis中文文档介绍
Feb 07 PHP
windows服务器中检测PHP SSL是否开启以及开启SSL的方法
Apr 25 PHP
php简单图像创建入门实例
Jun 10 PHP
PHP截取发动短信内容的方法
Jul 04 PHP
mongodb和php的用法详解
Mar 25 PHP
Swoole实现异步投递task任务案例详解
Apr 02 PHP
thinkphp5使html5实现动态跳转的例子
Oct 16 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程序--记数器
2006/10/09 PHP
PHP文件操作实现代码分享
2011/09/01 PHP
php使用ob_flush不能每隔一秒输出原理分析
2015/06/02 PHP
中高级PHP程序员应该掌握哪些技术?
2016/09/23 PHP
一些易混淆且不常用的属性,希望有用
2007/01/29 Javascript
csdn 博客的css样式 v3
2009/02/24 Javascript
jquery nth-child()选择器的简单应用
2010/07/10 Javascript
js下用eval生成JSON对象
2010/09/17 Javascript
jquery遍历筛选数组的几种方法和遍历解析json对象
2013/12/13 Javascript
JS中判断null、undefined与NaN的方法
2014/03/26 Javascript
jQuery学习笔记之 Ajax操作篇(二) - 数据传递
2014/06/23 Javascript
JavaScript输出当前时间Unix时间戳的方法
2015/04/06 Javascript
AngularJS实现元素显示和隐藏的几个案例
2015/12/09 Javascript
借助node实战JSONP跨域实例
2017/03/30 Javascript
详解Vue-Cli 异步加载数据的一些注意点
2017/08/12 Javascript
CheckBox多选取值及判断CheckBox选中是否为空的实例
2017/10/31 Javascript
highCharts提示框中显示当前时间的方法
2019/01/18 Javascript
vue基础之使用get、post、jsonp实现交互功能示例
2019/03/12 Javascript
JS创建自定义对象的六种方法总结
2020/12/15 Javascript
详细解析Python中的变量的数据类型
2015/05/13 Python
python实现将英文单词表示的数字转换成阿拉伯数字的方法
2015/07/02 Python
利用Python画ROC曲线和AUC值计算
2016/09/19 Python
用Python画小女孩放风筝的示例
2019/11/23 Python
pyqt5 QlistView列表显示的实现示例
2020/03/24 Python
浅谈keras保存模型中的save()和save_weights()区别
2020/05/21 Python
微软台湾官方网站:Microsoft台湾
2018/08/15 全球购物
中学生学雷锋演讲稿
2014/04/26 职场文书
团支书竞选演讲稿
2014/04/28 职场文书
家庭贫困证明书(3篇)
2014/09/15 职场文书
领导干部作风建设自查报告
2014/10/23 职场文书
班主任工作实习计划
2015/01/16 职场文书
学校清洁工岗位职责
2015/04/15 职场文书
2015军训通讯稿大全
2015/07/18 职场文书
二十年同学聚会感言
2015/07/30 职场文书
高效笔记技巧分享:学会这些让你不再困扰
2019/09/04 职场文书
教你win10系统中APPCRASH事件问题解决方法
2022/07/15 数码科技