docker安装rabbitmq并配置hyperf使用

简介: 通过以上步骤,您可以实现在Docker容器中安装和配置RabbitMQ,并在PHP的Hyperf框架中进行集成和使用。这种方式为开发者提供了快速部署并实现消息队列解决方案的能力,同时维持了环境与生产环境的一致性,从而为开发高效的分布式应用程序提供了便利。

为满足您的高标准需求,我将分步骤为您详细解释如何通过Docker安装RabbitMQ服务器,并展示如何配置PHP的Hyperf框架来使用RabbitMQ。

安装RabbitMQ:

  1. 获取RabbitMQ镜像在终端中运行以下命令来拉取RabbitMQ的官方Docker镜像:

    docker pull rabbitmq:management
    

    这里我们使用带有 management标签的镜像,因为它包含了RabbitMQ管理插件,此插件可以通过Web UI来管理和查看RabbitMQ的状态。

  2. 运行RabbitMQ容器使用以下命令来创建并启动一个RabbitMQ容器实例:

    docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:management
    

    这条命令会将容器的5672端口(RabbitMQ服务器端口)和15672端口(Web管理界面端口)映射到宿主机上的相同端口。

  3. 设置RabbitMQ用户为了增强安全性,我们需要设置RabbitMQ的用户名和密码,您可以通过以下命令进入RabbitMQ容器,并使用RabbitMQ的命令行工具来创建新用户、设置密码以及配置相应的权限:

    docker exec -it rabbitmq bash # 进入RabbitMQ容器
    rabbitmqctl add_user myuser mypassword # 添加新用户
    rabbitmqctl set_permissions -p / myuser ".*" ".*" ".*" # 配置用户权限
    rabbitmqctl set_user_tags myuser administrator # 设置用户的角色
    

    这些命令创建了一个名为 myuser的用户,并为其设置了 mypassword密码和管理员权限。

  4. 访问RabbitMQ管理界面
    打开您的浏览器并导航到 http://localhost:15672,您可以使用步骤3中设置的用户名和密码登录到RabbitMQ的管理界面。

配置Hyperf使用RabbitMQ:

  1. 安装Hyperf及其组件假设您已经有一个Hyperf项目,您需要安装 hyperf/amqp扩展来使Hyperf支持AMQP协议,从而可以与RabbitMQ进行交互。

    composer require hyperf/amqp
    
  2. 配置 .env文件在您的Hyperf项目根目录中找到 .env文件,并设置与RabbitMQ容器对应的AMQP连接信息:

    AMQP_HOST=localhost
    AMQP_PORT=5672
    AMQP_USER=myuser
    AMQP_PASS=mypassword
    AMQP_VHOST=/
    
  3. 配置 config/autoload/amqp.php在Hyperf项目的 config/autoload目录下编辑(或创建)amqp.php配置文件,以匹配您的RabbitMQ连接设置:

    <?php
    return [
        'default' => [
            'host' => env('AMQP_HOST', 'localhost'),
            'port' => (int) env('AMQP_PORT', 5672),
            'user' => env('AMQP_USER', 'myuser'),
            'password' => env('AMQP_PASS', 'mypassword'),
            'vhost' => env('AMQP_VHOST', '/'),
            // 其他配置...
        ],
    ];
    
  4. 创建生产者和消费者
    按照Hyperf的官方文档创建消息生产者(Publisher)和消费者(Consumer)类。生产者负责向特定的队列发送消息,而消费者则负责接收消息并进行处理。

验证:

通过您的Hyperf应用来发布一个消息,并检查RabbitMQ管理界面的Queues部分,查看消息是否已成功进入队列。同样地,启动Hyperf消费者服务,你应该能看到消费者从队列中获取并处理消息。

通过以上步骤,您可以实现在Docker容器中安装和配置RabbitMQ,并在PHP的Hyperf框架中进行集成和使用。这种方式为开发者提供了快速部署并实现消息队列解决方案的能力,同时维持了环境与生产环境的一致性,从而为开发高效的分布式应用程序提供了便利。

相关实践学习
快速体验阿里云云消息队列RocketMQ版
本实验将带您快速体验使用云消息队列RocketMQ版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
5月前
|
Kubernetes 关系型数据库 文件存储
手把手教你完成极空间 NAS Docker 镜像加速配置
本教程详细介绍了如何在极空间NAS上配置轩辕镜像加速器,以提升Docker镜像的下载速度与稳定性。内容涵盖账号注册、网络确认、加速器设置及验证方法,并提供常见问题解决方案,帮助用户高效完成容器化应用部署。
1951 1
|
8月前
|
Prometheus 监控 Cloud Native
Prometheus配置docker采集器
本文介绍了如何使用 Prometheus 监控 Docker 容器,涵盖环境准备、配置文件编写及服务启动等步骤。首先确保安装 Docker 和 Docker Compose,接着通过 `docker-compose.yml` 配置 Prometheus 和示例应用。创建 `prometheus.yml` 指定数据采集目标,最后用 `docker-compose up -d` 启动服务。文章还展示了甘特图和类图,帮助理解服务状态与关系,助力提升系统可靠性和可维护性。
316 11
|
5月前
|
文件存储 数据安全/隐私保护 开发者
群晖NAS Docker镜像源加速配置教程
本教程介绍了群晖NAS用户如何通过配置轩辕镜像加速服务提升Docker镜像拉取速度。内容包括配置前准备、详细设置步骤及日常使用说明,帮助用户快速完成配置并享受高效稳定的镜像下载体验。
3570 59
|
Docker 容器 文件存储
飞牛fnOS Docker镜像加速配置全攻略
本文介绍了如何在飞牛fnOS中配置Docker镜像加速服务,通过设置轩辕镜像仓库加速器,提升镜像拉取速度与稳定性。内容涵盖配置前准备、加速源设置、首选加速源调整及使用指南,帮助用户高效完成镜像操作。
2549 56
|
5月前
|
Java 分布式数据库 Docker
使用Docker配置并连接HBase的Java API
本流程概要的解释了如何在Docker上配置并启动HBase服务,并通过Java API进行连接和操作表,不涉及具体的业务逻辑处理和数据模型设计,这些因应用而异需由开发者根据实际需求进行实现。
290 13
|
5月前
|
物联网 Linux 开发者
快速部署自己私有MQTT-Broker-下载安装到运行不到一分钟,快速简单且易于集成到自己项目中
本文给物联网开发的朋友推荐的是GMQT,让物联网开发者快速拥有合适自己的MQTT-Broker,本文从下载程序到安装部署手把手教大家安装用上私有化MQTT服务器。
1536 5
|
6月前
|
消息中间件 监控 Docker
Docker环境下快速部署RabbitMQ教程。
就这样,你成功地用魔法召唤出了RabbitMQ,还把它和你的应用程序连接了起来。现在,消息会像小溪流水一样,在你的系统中自由流淌。别忘了,兔子们不喜欢孤独,他们需要你细心的关怀,不时地监控它们,确保他们的世界运转得井井有条。
435 18
|
6月前
|
存储 NoSQL MongoDB
Docker中安装MongoDB并配置数据、日志、配置文件持久化。
现在,你有了一个运行在Docker中的MongoDB,它拥有自己的小空间,对高楼大厦的崩塌视而不见(会话丢失和数据不持久化的问题)。这个MongoDB的数据、日志、配置文件都会妥妥地保存在你为它精心准备的地方,天旋地转,它也不会失去一丁点儿宝贵的记忆(即使在容器重启后)。
756 4
|
5月前
|
消息中间件 数据管理 Serverless
阿里云消息队列 Apache RocketMQ 创新论文入选顶会 ACM FSE 2025
阿里云消息团队基于 Apache RocketMQ 构建 Serverless 消息系统,适配多种主流消息协议(如 RabbitMQ、MQTT 和 Kafka),成功解决了传统中间件在可伸缩性、成本及元数据管理等方面的难题,并据此实现 ApsaraMQ 全系列产品 Serverless 化,助力企业提效降本。