RabbitMQ 是一个流行的消息队列系统,广泛用于异步通信和任务队列。以下是如何在本地安装 RabbitMQ 以及使用 PHP 连接并操作 RabbitMQ 的步骤。
安装 RabbitMQ1. 安装 ErlangRabbitMQ 依赖于 Erlang,因此首先需要安装 Erlang。
在 Debian/Ubuntu 上安装 Erlangsudo apt update sudo apt install erlang在 CentOS/RHEL 上安装 Erlang
sudo yum install epel-release sudo yum install erlang2. 安装 RabbitMQ在 Debian/Ubuntu 上安装 RabbitMQ
sudo apt update sudo apt install rabbitmq-server在 CentOS/RHEL 上安装 RabbitMQ
sudo yum install rabbitmq-server3. 启动 RabbitMQ 服务
sudo systemctl start rabbitmq-server sudo systemctl enable rabbitmq-server使用 PHP 连接并操作 RabbitMQ1. 安装 PHP AMQP 扩展
要使用 PHP 连接 RabbitMQ,需要安装 PHP 的 AMQP 扩展。
在 Debian/Ubuntu 上安装 PHP AMQP 扩展sudo apt update sudo apt install php-amqp在 CentOS/RHEL 上安装 PHP AMQP 扩展
sudo yum install php-amqp2. 安装 php-amqplib 库
除了 PHP AMQP 扩展,还可以使用 php-amqplib 库,这是一个纯 PHP 实现的 AMQP 客户端。
使用 Composer 安装 php-amqplibcomposer require php-amqplib/php-amqplib3. 使用 PHP 连接并操作 RabbitMQ
以下是一个简单的示例,展示了如何使用 php-amqplib 库连接 RabbitMQ,发送和接收消息。
生产者(发送消息)<?php
require_once __DIR__ . '/vendor/autoload.php';
use PhpAmqpLib\Connection\AMQPStreamConnection;
use PhpAmqpLib\Message\AMQPMessage;
$connection = new AMQPStreamConnection('localhost', 5672, 'guest', 'guest');
$channel = $connection->channel();
$channel->queue_declare('hello', false, false, false, false);
$msg = new AMQPMessage('Hello World!');
$channel->basic_publish($msg, '', 'hello');
echo " [x] Sent 'Hello World!'\n";
$channel->close();
$connection->close();
?> 消费者(接收消息) <?php
require_once __DIR__ . '/vendor/autoload.php';
use PhpAmqpLib\Connection\AMQPStreamConnection;
$connection = new AMQPStreamConnection('localhost', 5672, 'guest', 'guest');
$channel = $connection->channel();
$channel->queue_declare('hello', false, false, false, false);
echo " [*] Waiting for messages. To exit press CTRL+C\n";
$callback = function ($msg) {
echo ' [x] Received ', $msg->body, "\n";
};
$channel->basic_consume('hello', '', false, true, false, false, $callback);
while ($channel->is_consuming()) {
$channel->wait();
}
$channel->close();
$connection->close();
?> 解释连接 RabbitMQ:
使用 AMQPStreamConnection 类连接到 RabbitMQ 服务器。参数包括主机名、端口、用户名和密码。声明队列:
使用 queue_declare 方法声明一个队列。如果队列不存在,它将被创建。发送消息:
创建一个 AMQPMessage 对象,并使用 basic_publish 方法将消息发送到队列。接收消息:
使用 basic_consume 方法从队列中消费消息,并定义一个回调函数处理收到的消息。运行消费者:
使用 while ($channel->is_consuming()) { $channel->wait(); } 使消费者保持运行状态,等待并处理消息。通过以上步骤,你可以在本地安装 RabbitMQ,并使用 PHP 连接并操作 RabbitMQ。根据实际需求,你可以扩展和优化这个示例。
网友回复
有没有不依赖embedding向量的RAG技术?
有没有支持实时打断语音通话并后台帮你执行任何的ai模型?
开源ai大模型文件格式GGUF、MLX、Safetensors、 ONNX 有什么区别?
出海挣钱支付收款PayPal、Wise 、PingPong、Stripe如何选择?
如何实现类似google的图片隐形水印添加和识别技术?
linux上如何运行任意windows程序?
ai能写出比黑客还厉害的零日漏洞等攻击工具攻击任意软件系统工程?
js如何获取浏览器的音频上下文指纹、Canvas指纹、WebGL渲染特征?
为啥ai开始抛弃markdown文本,重新偏好html文本了?
网站有没有办法鉴别访问请求是由ai操控chrome-devtools-mcp发出的?


