php rabbitmq demo

composer安装php rabbitmq包

新建composer.json文件,composer install 安装

{"require": {"php-amqplib/php-amqplib": ">=2.6.1"}
}

创建config.php文件

<?php
return ['vendor' => ['path' => './vendor'],'rabbitmq' => ['host' => '127.0.0.1','port' => '5672','login' => 'guest','password' => 'guest','vhost' => '/']
];
?>

 

创建消费者 rabbit_consumer.php,注意具体文件引用的路径

<?phpuse PhpAmqpLib\Connection\AMQPStreamConnection;
use PhpAmqpLib\Message\AMQPMessage;$config = require "./config.php";
require_once $config['vendor']['path'] . '/autoload.php';$connection = new AMQPStreamConnection($config['rabbitmq']['host'], $config['rabbitmq']['port'],$config['rabbitmq']['login'], $config['rabbitmq']['password'], $config['rabbitmq']['vhost']);
$channel = $connection->channel();$channel->queue_declare('hello', false, false, false, false);
$callback = function($msg) {echo $msg->body;file_put_contents('log.txt', $msg->body);
};$channel->basic_consume('hello', '', false, true, false, false, $callback);while(true) {$channel->wait();
}
$channel->close();
$connection->close();?>

 

创建生产者 rabbit_pulisher.php

<?php$config = require "./config.php";require_once $config['vendor']['path'] . '/autoload.php';use PhpAmqpLib\Connection\AMQPStreamConnection;
use PhpAmqpLib\Message\AMQPMessage;$connection = new AMQPStreamConnection($config['rabbitmq']['host'], $config['rabbitmq']['port'],$config['rabbitmq']['login'], $config['rabbitmq']['password'], $config['rabbitmq']['vhost']);
$channel = $connection->channel();//发送方其实不需要设置队列, 不过对于持久化有关,建议执行该行
$channel->queue_declare('hello', false, false, false, false);$msg = new AMQPMessage('Hello World!123'.time());
$channel->basic_publish($msg, '', 'hello');echo " [x] Sent 'Hello World!x'\n";$channel->close();
$connection->close();
?>

 

首先运行消费者

php rabbit_consumer.php

另起窗口运行生产者 

php rabbit_publisher.php

转载于:https://www.cnblogs.com/mmmzh/p/10100993.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/412654.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[css] 你有使用过哪些栅格系统?都有什么区别呢?

[css] 你有使用过哪些栅格系统&#xff1f;都有什么区别呢&#xff1f; bootstrap3 float完成的栅格 bootstrap4 flex完成的栅格个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通…

dubbo源码解析(二)

大家好&#xff0c;我是烤鸭&#xff1a; dubbo 源码解析&#xff1a; 1.服务导出 介绍: Dubbo 服务导出过程始于 Spring 容器发布刷新事件&#xff0c;Dubbo 在接收到事件后&#xff0c;会立即执行服务导出逻辑。整个逻辑大致可分为三个部分&#xff0c;第一部分是前置工作&am…

[css] 请说说*{box-sizing: border-box;}的作用及好处有哪些?

[css] 请说说*{box-sizing: border-box;}的作用及好处有哪些&#xff1f; 还是喜欢用默认的content-box 不考虑老版ie 比较通配符的性能较差 第三方的UI库的盒模型也都是标准盒模型个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持…

执行mongod其他实例出现的问题

windows环境下&#xff0c;配置其他mongo实例&#xff0c;会出现一些问题 1、配置路径不对&#xff0c;执行bat文件时出现闪屏 根据提示创建C:\data\db\ 目录&#xff08;因为mongodb默认在/data/db下创建数据库&#xff09;&#xff0c;重新执行mongod实例&#xff0c;就OK&am…

从 class 文件 看 synchronize 锁膨胀过程(偏向锁 轻量级锁 自旋锁 重量级锁)

大家好&#xff0c;我是烤鸭: 前几天看马士兵老师的并发的课&#xff0c;里边讲到了 synchronize 锁的膨胀过程&#xff0c;今天想用代码演示一下。 1. 简单介绍 关于synchronize jdk 1.5 以后的优化&#xff0c;由重量级锁调整为膨胀过程。分别是 偏向锁 轻量级锁&#xff0…

[css] 说说你对jpg、png、gif的理解,分别在什么场景下使用?有使用过webp吗?

[css] 说说你对jpg、png、gif的理解&#xff0c;分别在什么场景下使用&#xff1f;有使用过webp吗&#xff1f; jpg, 色彩复杂图片 png, 色彩简单图片 gif, 动图, 或者色彩极简的icon等 webp, 判断能使用webp的浏览器就是用webp个人简介 我是歌谣&#xff0c;欢迎和大家一起交…

GC算法与收集器

一.判断对象是否存活 1.引用计数算法 2.可达性分析算法 二.垃圾收集算法 1.标记-清除算法&#xff1a;效率低&#xff0c;内存碎片 2.复制算法&#xff1a;适用于对象存活率低 3.标记-整理算法&#xff1a;没有内存碎片 4.分代收集算法&#xff1a;新生代用复制算法 老年代用标…

[css] 如何消除transition闪屏?

[css] 如何消除transition闪屏&#xff1f; 题目越简单越有含量。 看题意不知道在问什么&#xff0c;说明这个问题自己没注意或不熟悉&#xff0c;而不是去怀疑题目出的有问题。这个问题自己没有遇到过&#xff0c;或者说没有注意过这个问题&#xff0c;网上搜索了下答案&…

php opcache 详解

PHP性能提升之OPcache相关参数详解 工具 memory 发布于December 15, 2016 标签: PHPOPcache 通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能&#xff0c; 存储预编译字节码的好处就是 省去了每次加载和解析 PHP 脚本的开销。 PHP 5.5.0 及后续版本中已经绑定…

es elasticsearch 几种常见查询场景 二次分组 java读取es的查询json文件

大家好&#xff0c;我是烤鸭&#xff1a; es中几种常见的查询场景,使用java读取es的json文件进行查询。 es 中文使用手册。https://www.elastic.co/guide/cn/elasticsearch/guide/current/foreword_id.html 1. 从最简单的查询开始 GET /_search {"hits" : {&qu…

[css] 元素竖向的百分比设置是相对容器的高度吗?

[css] 元素竖向的百分比设置是相对容器的高度吗&#xff1f; 父级非 auto 的 height 时&#xff0c;子级百分比的 height 才有效。 即使父级有 min-height 或其他子级撑起的高度&#xff0c;子级百分比 height 依旧无效。个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后…

阿里云服务器邮件发送

一个邮件发送的功能&#xff0c;本机调试无问题&#xff0c;但发布到阿里云服务器后邮件发送功能失败。 网上查了下大概是说阿里云把发送邮件的25端口禁用掉了 那么解决方式一就是向阿里云申请开放25端口&#xff0c;但具体如何申请&#xff0c;并未深入操作。 解决方式二&…

全链路追踪竟然如此简单? bytebuddy搭建全链路追踪的demo 附代码

大家好&#xff0c;我是烤鸭&#xff1a; 最近一直在研究全链路追踪&#xff0c;比如cat、skywalking、zipkin等。 发现 skywalking 是基于bytebuddy 实现的&#xff0c;想自己试着写一下demo。 demo的git地址,感兴趣的可以自己试下。代码在idea中可以跑,至于其他场…

[css] 用CSS绘制一个红色的爱心

[css] 用CSS绘制一个红色的爱心 // 用过 就给贴过来了.heart {position: relative;width: 100px;height: 90px;}.heart:before,.heart:after {position: absolute;content: "";left: 50px;top: 0;width: 50px;height: 80px;background: red;border-radius: 50px 50p…

穿透内网,连接动态ip,内网ip打洞-----p2p实现原理(转)

源&#xff1a; 穿透内网&#xff0c;连接动态ip&#xff0c;内网ip打洞-----p2p实现原理转载于:https://www.cnblogs.com/LittleTiger/p/10107849.html

[css] 举例说明css中颜色的表示方法有几种

[css] 举例说明css中颜色的表示方法有几种 颜色单词: blue / lightblue / skyblue / transparent(透明)rgb(0-255, 0-255, 0-255) / rgba(0-255, 0-255, 0-255, 0-1)hsl色相: hsl(色调&#xff0c;饱和度&#xff0c;明度) hsla( 色调&#xff0c;饱和度&#xff0c;亮度&#…

关于 springcloud gateway 设置 context-path 的问题

大家好&#xff0c;我是烤鸭&#xff1a; 今天说一下遇到的问题&#xff0c;关于 springcloud gateway 设置 context-path 的问题。 1. 使用场景 由于没有申请二级域名,网关使用的地址是 xxx.com/gateway/ 用nginx转发的时候 /gateway/ 也被用来寻址。 gateway 没办法设置 con…

echarts地图的基本使用配置

一、空气质量图 代码和配置如下&#xff1a; <template><div class"box"><div id"map"></div></div> </template><script>import china from echarts/map/js/china.js export default {data(){return {}},mount…

[css] 说说position的absolute和fixed共同与不同点分别是什么?

[css] 说说position的absolute和fixed共同与不同点分别是什么&#xff1f; 相同点&#xff1a; 1、都是用来给元素定位的属性&#xff0c;具有定位元素的一切特点&#xff08;例如脱离文本流、不占据空间等等&#xff09;&#xff1b; 2、改变元素的呈现方式为display&#xf…

从源码角度分析下 micrometer 自定义 metrics endpoint 和 springboot actuator

大家好&#xff0c;我是烤鸭&#xff1a; 今天分享下 micrometer 的源码&#xff0c;和springboot集成 自定义endpoint 的使用。 1. 文档信息 官方文档&#xff1a; http://micrometer.io/docs github&#xff1a; https://github.com/micrometer-metrics/micrometer s…