国外域名查询网站装修设计公司哪个好
news/
2025/9/22 21:14:05/
文章来源:
国外域名查询网站,装修设计公司哪个好,国庆网页制作素材,网站运营推广难做前言
今天我们来做个小试验#xff0c;用PHP和RabbitMQ实现消息队列功能。
前期准备#xff0c;需要安装好docker、docker-compose的运行环境。
如何使用docker部署php服务_php如何使用docker发布-CSDN博客
一、安装RabbitMQ
1、创建相关目录#xff0c;执行如下命令。…前言
今天我们来做个小试验用PHP和RabbitMQ实现消息队列功能。
前期准备需要安装好docker、docker-compose的运行环境。
如何使用docker部署php服务_php如何使用docker发布-CSDN博客
一、安装RabbitMQ
1、创建相关目录执行如下命令。
mkdir -p /docker/rabbitmq/data
cd /docker/rabbitmq
2、编写yaml文件内容如下version替换成自己的docker-compose版本。
vim docker-compose.yaml
version: 2.2.2
services:rabbitmq:image: rabbitmqhostname: rabbitmqcontainer_name: rabbitmqports:- 5672:5672- 15672:15672volumes:- ./data:/var/lib/rabbitmqnetworks:- mynetnetworks:mynet:name: mynetdriver: bridge
3、启动rabbitmq执行如下命令。
docker-compose up -d
4、检查服务是否正常运行执行如下命令。
docker-compose ps -a
返回如下内容说明服务已正常启动正在运行。 5、如果有服务启动失败可以使用如下命令排查问题。
docker logs rabbitmq
6、至此rabbitmq安全完成并且已正常运行。
二、安装PHP的AMQP扩展
1、进入test1项目容器执行如下命令。
docker exec -ti test1 /bin/sh
2、下载AMQP扩展并且完成安装执行如下命令。
wget https://pecl.php.net/get/amqp-2.1.2.tgz
tar -zxvf amqp-2.1.2.tgz
cd amqp-2.1.2
/usr/local/php/bin/phpize
./configure --with-php-config/usr/local/php/bin/php-config
make make install
3、修改php.ini配置增加amqp扩展内容如下。
extensionamqp.so
4、检查配置是否成功执行如下命令有返回说明已完成安装。
/usr/local/php/bin/php -m|grep amqp
5、重启PHP服务 重启Web服务器或PHP-FPM服务以加载新安装的AMQP扩展。
6、至此php的amqp扩展已完成安装。
三、测试验证
1、进入test1项目目录执行如下命令。
cd /docker/test1/html/
2、编写生产者代码内容如下。
vim producer.php
?php
// 创建连接到RabbitMQ服务器的连接
$connection new AMQPConnection([host rabbitmq,port 5672,username guest,password guest]
);
$connection-connect();// 创建一个频道channel
$channel new AMQPChannel($connection);// 声明一个交换机exchange
$exchange new AMQPExchange($channel);
$exchange-setName(exchange_name);
$exchange-setType(AMQP_EX_TYPE_DIRECT); // 直接交换机类型
$exchange-declareExchange();// 声明一个队列
$queue new AMQPQueue($channel);
$queue-setName(queue_name);
$queue-declareQueue();// 绑定交换机到队列
$queue-bind(exchange_name, routing_key);// 发送一条消息
$messageBody Hello, RabbitMQ!.(!empty($_GET[msg]) ? $_GET[msg] : );
$exchange-publish($messageBody, routing_key);// 关闭连接
$channel-close();
$connection-disconnect();
3、编写消费者代码内容如下。
vim consumer.php
?php
// 创建连接到RabbitMQ服务器的连接
$connection new AMQPConnection([host rabbitmq,port 5672,username guest,password guest]
);
$connection-connect();// 创建一个频道channel
$channel new AMQPChannel($connection);// 声明一个交换机exchange
$exchange new AMQPExchange($channel);
$exchange-setName(exchange_name);
$exchange-setType(AMQP_EX_TYPE_DIRECT); // 直接交换机类型
$exchange-declareExchange();// 声明一个队列
$queue new AMQPQueue($channel);
$queue-setName(queue_name);
$queue-declareQueue();// 绑定交换机到队列
$queue-bind(exchange_name, routing_key);// 开始消费消息
$queue-consume(function (AMQPEnvelope $envelope, AMQPQueue $queue) {if ($envelope-getBody()) {echo Received message: , $envelope-getBody(), \n;}
}, AMQP_AUTOACK); // 如果设置为AMQP_AUTOACK消息一旦收到就被认为已确认否则需要手动确认// 关闭连接
$channel-close();
$connection-disconnect();
4、进入test1项目容器监控消费者执行如下命令。
/usr/local/php/bin/php /usr/local/nginx/html/consumer.php
5、在宿主机发起一个生产者请求执行如下命令。
curl http://127.0.0.1:8081/producer.php?msgmax
6、正常情况下会在test1项目容器看到消费者的输出类似如下截图。 7、至此php和rabbitmq实现消息队列的功能已测试验证OK。
总结
用PHP和RabbitMQ实现消息队列功能其实也不复杂主要有以下几个步骤。
1、安装RabbitMQ。
2、安装PHP的AMQP扩展。
3、编写生产者、消费者进行验证。
上面的代码只是做个简单的示例如果运用到实际的项目当中需要做配置化、封装。
最后因本人能力有限有什么不对的地方望各位大佬指出好让我改进多多包含谢谢大家。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/910394.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!