使用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防止恶意刷新与刷票的方法
Nov 21 PHP
Yii框架form表单用法实例
Dec 04 PHP
PHP统计当前在线用户数实例讲解
Oct 21 PHP
php curl模拟post请求和提交多维数组的示例代码
Nov 19 PHP
微信支付PHP SDK之微信公众号支付代码详解
Dec 09 PHP
CI框架整合widget(页面格局)的方法
May 17 PHP
php性能分析之php-fpm慢执行日志slow log用法浅析
Oct 17 PHP
thinkPHP框架RBAC实现原理分析
Feb 01 PHP
启用OPCache提高PHP程序性能的方法
Mar 21 PHP
Laravel路由研究之domain解决多域名问题的方法示例
Apr 04 PHP
PHP7 整型处理机制修改
Mar 09 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/06 PHP
PHP文件去掉PHP注释空格的函数分析(PHP代码压缩)
2013/07/02 PHP
PHP实现的回溯算法示例
2017/08/15 PHP
php变量与JS变量实现不通过跳转直接交互的方法
2017/08/25 PHP
对象特征检测法判断浏览器对javascript对象的支持
2009/07/25 Javascript
javascript replace()正则替换实现代码
2010/02/26 Javascript
javascript学习之闭包分析
2010/12/02 Javascript
Adapter适配器模式在JavaScript设计模式编程中的运用分析
2016/05/18 Javascript
非常实用的vue导航钩子
2017/03/20 Javascript
Vue 进阶教程之v-model详解
2017/05/06 Javascript
浅谈对Angular中的生命周期钩子的理解
2017/07/31 Javascript
浅谈webpack编译vue项目生成的代码探索
2017/12/11 Javascript
浅析JS中回调函数及用法
2018/07/25 Javascript
AngularJS发送异步Get/Post请求方法
2018/08/13 Javascript
微信小程序实现保存图片到相册功能
2018/11/30 Javascript
vue项目中仿element-ui弹框效果的实例代码
2019/04/22 Javascript
详解vue 组件注册
2020/11/20 Vue.js
利用Python操作消息队列RabbitMQ的方法教程
2017/07/19 Python
django框架防止XSS注入的方法分析
2019/06/21 Python
python 实现turtle画图并导出图片格式的文件
2019/12/07 Python
Python爬虫:Request Payload和Form Data的简单区别说明
2020/04/30 Python
PyCharm 2020.2下配置Anaconda环境的方法步骤
2020/09/23 Python
详解Django中的FBV和CBV对比分析
2021/03/01 Python
基于CSS3实现立方体自转效果
2016/03/01 HTML / CSS
html5跳转小程序wx-open-launch-weapp踩坑
2020/12/02 HTML / CSS
惠普墨西哥官方商店:HP墨西哥
2016/12/01 全球购物
波兰在线香水店:Perfumy.pl
2019/08/12 全球购物
澳大利亚头发和美容产品购物网站:OZ Hair & Beauty
2020/03/27 全球购物
大学生职业规划范文:象牙塔生活的四年计划
2014/01/14 职场文书
餐厅考勤管理制度
2014/01/28 职场文书
2014年关于两会精神的心得体会
2014/03/17 职场文书
作风年建设汇报材料
2014/08/14 职场文书
2014年节能工作总结
2014/12/18 职场文书
销售经理岗位职责范本
2015/04/02 职场文书
教师信息技术学习心得体会
2016/01/21 职场文书
Java基础之this关键字的使用
2021/06/30 Java/Android