使用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学习之数组值的操作
Apr 17 PHP
php中转义mysql语句的实现代码
Jun 24 PHP
关于Zend Studio 配色方案插件的介绍
Jun 24 PHP
PHP 正则判断中文UTF-8或GBK的思路及具体实现
Nov 26 PHP
PHP采集类snoopy详细介绍(snoopy使用教程)
Jun 19 PHP
php向js函数传参的几种方法
Aug 10 PHP
PHP实现对xml的增删改查操作案例分析
May 19 PHP
Yii框架批量插入数据扩展类的简单实现方法
May 23 PHP
PHP迭代与递归实现无限级分类
Aug 28 PHP
PHP中检查isset()和!empty()函数的必要性
Feb 13 PHP
php输出控制函数和输出函数生成静态页面
Jun 27 PHP
Laravel-admin之修改操作日志的方法
Sep 30 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全局变量和类配合使用深刻理解
2013/06/05 PHP
sql注入与转义的php函数代码
2013/06/17 PHP
php统计时间和内存使用情况示例分享
2014/03/13 PHP
PHP实现批量生成App各种尺寸Logo
2015/03/19 PHP
搭建基于Docker的PHP开发环境的详细教程
2015/07/01 PHP
详解PHP发送邮件知识点
2018/05/06 PHP
php无限极分类实现方法分析
2019/07/04 PHP
javascript常用的正则表达式实例
2014/05/15 Javascript
JQuery日历插件My97DatePicker日期范围限制
2016/01/20 Javascript
JavaScript数据结构链表知识详解
2016/11/21 Javascript
javascript中href和replace的比较(详解)
2016/11/25 Javascript
基于vue2.0实现的级联选择器
2017/06/09 Javascript
vue中使用codemirror的实例详解
2018/11/01 Javascript
js canvas实现橡皮擦效果
2018/12/20 Javascript
vue+iview动态渲染表格详解
2019/03/19 Javascript
js 对象使用的小技巧实例分析
2019/11/08 Javascript
如何使用jQuery操作Cookies方法解析
2020/09/08 jQuery
Flask框架学习笔记(一)安装篇(windows安装与centos安装)
2014/06/25 Python
Python学生信息管理系统修改版
2018/03/13 Python
python3文件复制、延迟文件复制任务的实现方法
2019/09/02 Python
python多线程实现代码(模拟银行服务操作流程)
2020/01/13 Python
悦木之源美国官网:Origins美国
2016/08/01 全球购物
美国大型的健身社区和补充商店:Bodybuilding.com
2016/09/06 全球购物
Simons官方网站:加拿大时尚零售商
2020/02/20 全球购物
学期研究性学习个人的自我评价
2014/01/09 职场文书
工作鉴定评语
2014/05/04 职场文书
干部作风建设个人剖析材料
2014/10/11 职场文书
2014年基层党支部工作总结
2014/12/04 职场文书
工作推荐信模板
2015/03/25 职场文书
2015年前台个人工作总结
2015/04/03 职场文书
药品开票员岗位职责
2015/04/15 职场文书
同学聚会祝酒词
2015/08/10 职场文书
2015年中秋放假通知范文
2015/08/18 职场文书
为什么 Nginx 比 Apache 更牛逼
2021/03/31 Servers
Javascript中的解构赋值语法详解
2021/04/02 Javascript
MySQL 可扩展设计的基本原则
2021/05/14 MySQL