使用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.ini 中文版
Oct 28 PHP
有关php运算符的知识大全
Nov 03 PHP
一个简单的网页密码登陆php代码
Jul 17 PHP
windows环境下php配置memcache的具体操作步骤
Jun 09 PHP
解决File size limit exceeded 错误的方法
Jun 14 PHP
解析PHP跳出循环的方法以及continue、break、exit的区别介绍
Jul 01 PHP
php的mssql数据库连接类实例
Nov 28 PHP
php判断当前用户已在别处登录的方法
Jan 06 PHP
PHP中使用imagick生成PSD文件缩略图教程
Jan 26 PHP
PHP 极验验证码实例讲解
Sep 29 PHP
PHP实现的简单适配器模式示例
Jun 22 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
Nov 13 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 $_SERVER[&quot;REQUEST_URI&quot;]获取值的通用解决方法
2010/06/21 PHP
关于php操作mysql执行数据库查询的一些常用操作汇总
2013/06/24 PHP
跟我学Laravel之配置Laravel
2014/10/15 PHP
PHP用反撇号执行外部命令
2015/04/14 PHP
PHP 文件锁与进程锁的使用示例
2017/08/07 PHP
laravel 模型查询按照whereIn排序的示例
2019/10/16 PHP
php实现的简单多进程服务器类完整示例
2020/02/01 PHP
全面理解面向对象的 JavaScript(来自ibm)
2013/11/10 Javascript
jquery中交替点击事件toggle方法的使用示例
2013/12/08 Javascript
iframe实用操作锦集
2014/04/22 Javascript
jQuery移除元素自动解绑事件实现思路及代码
2014/05/31 Javascript
jQuery 3 中的新增功能汇总介绍
2016/06/12 Javascript
javascript中数组和字符串的方法对比
2016/07/20 Javascript
jQuery实现的简单对话框拖动功能示例
2018/06/05 jQuery
vue element项目引入icon图标的方法
2018/06/06 Javascript
微信小程序外卖选购页实现切换分类与数量加减功能案例
2019/01/15 Javascript
小程序转发探索示例
2019/02/19 Javascript
js计时事件实现圆形时钟
2020/03/25 Javascript
vue+vant 上传图片需要注意的地方
2021/01/03 Vue.js
Zabbix实现微信报警功能
2016/10/09 Python
Python中实现switch功能实例解析
2018/01/11 Python
PyCharm代码回滚,恢复历史版本的解决方法
2018/10/22 Python
Python 多线程搜索txt文件的内容,并写入搜到的内容(Lock)方法
2019/08/23 Python
pytorch实现特殊的Module--Sqeuential三种写法
2020/01/15 Python
Tensorflow中批量读取数据的案列分析及TFRecord文件的打包与读取
2020/06/30 Python
如何用Python提取10000份log中的产品信息
2021/01/14 Python
Canvas 文本转粒子效果的实现代码
2019/02/14 HTML / CSS
html5 Canvas画图教程(5)—canvas里画曲线之arc方法
2013/01/09 HTML / CSS
HTML5 创建canvas元素示例代码
2014/06/04 HTML / CSS
医药代表个人的求职信分享
2013/12/08 职场文书
环保建议书
2014/03/12 职场文书
喷漆工的岗位职责
2014/03/17 职场文书
2014离婚协议书范文
2014/09/10 职场文书
意外死亡赔偿协议书
2014/10/14 职场文书
祝寿主持词
2015/07/02 职场文书
2016年领导干部正风肃纪心得体会
2015/10/09 职场文书