使用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求最大子序列和的算法实现
Jun 24 PHP
PHP入门之常量简介和系统常量
May 12 PHP
ThinkPHP模板中数组循环实例
Oct 30 PHP
smarty自定义函数htmlcheckboxes用法实例
Jan 22 PHP
php实现zip文件解压操作
Nov 03 PHP
Joomla数据库操作之JFactory::getDBO用法
May 05 PHP
php similar_text()函数的定义和用法
May 12 PHP
PHP简单数据库操作类实例【支持增删改查及链式操作】
Oct 10 PHP
PHP+Ajax无刷新带进度条图片上传示例
Feb 08 PHP
Yii2使用$this-&gt;context获取当前的Module、Controller(控制器)、Action等
Mar 29 PHP
php 读写json文件及修改json的方法
Mar 07 PHP
用php实现分页效果的示例代码
Dec 10 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实现获取文章内容第一张图片的方法
2014/11/04 PHP
php实现监控varnish缓存服务器的状态
2014/12/30 PHP
php获取网站百度快照日期的方法
2015/07/29 PHP
thinkPHP实现MemCache分布式缓存功能
2016/03/23 PHP
javascript中判断一个值是否在数组中并没有直接使用
2012/12/17 Javascript
JavaScript创建对象的写法
2013/08/29 Javascript
JavaScript对象参数的引用传递
2016/01/14 Javascript
Jquery easyui开启行编辑模式增删改操作
2016/01/14 Javascript
Angular和Vue双向数据绑定的实现原理(重点是vue的双向绑定)
2016/11/22 Javascript
百度地图JavascriptApi Marker平滑移动及车头指向行径方向
2017/03/13 Javascript
vue中v-cloak解决刷新或者加载出现闪烁问题(显示变量)
2018/04/20 Javascript
jQuery实现菜单的显示和隐藏功能示例
2018/07/24 jQuery
Javascript 之封装(Package)
2018/09/14 Javascript
Vue项目引进ElementUI组件的方法
2018/11/11 Javascript
使用 vue 实例更好的监听事件及vue实例的方法
2019/04/22 Javascript
js实现表单项的全选、反选及删除操作示例
2020/06/05 Javascript
JavaScript逻辑运算符相关总结
2020/09/04 Javascript
NodeJS配置CORS实现过程详解
2020/12/02 NodeJs
python将图片文件转换成base64编码的方法
2015/03/14 Python
Python中防止sql注入的方法详解
2017/02/25 Python
Python cookbook(数据结构与算法)将名称映射到序列元素中的方法
2018/03/22 Python
详解python:time模块用法
2019/03/25 Python
Python3+OpenCV2实现图像的几何变换(平移、镜像、缩放、旋转、仿射)
2019/05/13 Python
python基于pdfminer库提取pdf文字代码实例
2019/08/15 Python
python 中的[:-1]和[::-1]的具体使用
2020/02/13 Python
美国顶尖折扣时尚购物网:Bluefly
2016/08/28 全球购物
预订从美国飞往印度的机票:MyTicketsToIndia
2017/05/19 全球购物
牧马人澳大利亚官网:Wrangler澳大利亚
2019/10/08 全球购物
如何提高SQL Server的安全性
2016/07/25 面试题
《真想变成大大的荷叶》教学反思
2014/04/14 职场文书
2014年感恩母亲演讲稿
2014/05/27 职场文书
乡党政领导班子群众路线教育实践活动个人对照检查材料
2014/09/20 职场文书
查摆问题自查报告范文
2014/10/13 职场文书
2015年度团总支工作总结
2015/04/23 职场文书
出生证明范本
2015/06/15 职场文书
python Polars库的使用简介
2021/04/21 Python