使用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中调用JAVA
Oct 09 PHP
用PHP实现多级树型菜单
Oct 09 PHP
php分页示例代码
Mar 19 PHP
常用的php ADODB使用方法集锦
Mar 25 PHP
PHP 面向对象实现代码
Nov 11 PHP
PHP Socket 编程
Apr 09 PHP
用PHP实现弹出消息提示框的两种方法
Dec 17 PHP
php开启openssl的方法
May 15 PHP
ThinkPHP2.x防范XSS跨站攻击的方法
Sep 25 PHP
Thinkphp和Bootstrap结合打造个性的分页样式(推荐)
Aug 01 PHP
php5.5使用PHPMailer-5.2发送邮件的完整步骤
Oct 14 PHP
为Plesk PHP7启用Oracle OCI8扩展方法总结
Mar 29 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
JavaScript DOM学习第四章 getElementByTagNames
2010/02/19 Javascript
jQuery插件实现屏蔽单个元素使用户无法点击
2013/04/12 Javascript
JS对select控件option选项的增删改查示例代码
2013/10/21 Javascript
JavaScript获得url所有参数键值表的方法
2015/03/21 Javascript
javascript数组去重的方法汇总
2015/04/14 Javascript
详解JS: reduce方法实现 webpack多文件入口
2017/02/14 Javascript
JS中的作用域链
2017/03/01 Javascript
解决bootstrap中下拉菜单点击后不关闭的问题
2018/08/10 Javascript
Vue实现底部侧边工具栏的实例代码
2018/09/03 Javascript
vue 实现边输入边搜索功能的实例讲解
2018/09/16 Javascript
灵活使用console让js调试更简单的方法步骤
2019/04/23 Javascript
Vue CLI项目 axios模块前后端交互的使用(类似ajax提交)
2019/09/01 Javascript
JavaScript canvas实现雪花随机动态飘落
2020/02/08 Javascript
[01:25]DOTA2自定义游戏灵园鬼域等你踏足
2015/10/30 DOTA
python登陆asp网站页面的实现代码
2015/01/14 Python
Python 的描述符 descriptor详解
2016/02/27 Python
Python实现字符串格式化的方法小结
2017/02/20 Python
python 将对象设置为可迭代的两种实现方法
2019/01/21 Python
python try except返回异常的信息字符串代码实例
2019/08/15 Python
python3实现往mysql中插入datetime类型的数据
2020/03/02 Python
在python中利用pycharm自定义代码块教程(三步搞定)
2020/04/15 Python
CSS3中新增的对文本和字体的设置
2020/02/03 HTML / CSS
美国第二大连锁书店:Books-A-Million
2017/12/28 全球购物
Vrbo英国:预订度假屋
2020/08/19 全球购物
实习教师自我鉴定
2013/12/12 职场文书
工作交流会欢迎词
2014/01/12 职场文书
企业节能减排实施方案
2014/03/19 职场文书
绿色环保标语
2014/06/12 职场文书
贫困证明模板(3篇)
2014/09/16 职场文书
学校政风行风评议心得体会
2014/10/21 职场文书
无锡灵山大佛导游词
2015/02/09 职场文书
学校2015年纠风工作总结
2015/05/15 职场文书
2016年公司中秋节致辞
2015/11/26 职场文书
游戏《东方异文石:爱亚利亚黎明》正式版发布
2022/04/03 其他游戏
Win11无法访问设备和打印机 如何解决页面空白
2022/04/09 数码科技
分享node.js实现简单登录注册的具体代码
2022/04/26 NodeJs