当前位置: 首页 > news >正文

Windows 11 安装 RabbitMQ 消息队列(完整规范版)

Windows 11 安装 RabbitMQ 消息队列(极简 + 完整步骤)

核心前提:RabbitMQ 依赖Erlang,必须先装 Erlang、再装 RabbitMQ,且版本必须匹配。


一、版本选择(Windows 11 稳定组合)

  • Erlang:26.2(64 位)
  • RabbitMQ:3.13.0(稳定兼容)
  • 安装路径禁止中文、空格、特殊字符(如D:\Develop\ErlangD:\Develop\RabbitMQ

二、第一步:安装 Erlang(必须先装)

2.1 下载

  • 官方:https://www.erlang.org/downloads
  • 国内镜像(推荐):https://mirrors.aliyun.com/erlang/otp/
  • 下载:otp_win64_26.2.exe

2.2 安装(管理员权限)

  1. 右键安装包 →以管理员身份运行
  2. 自定义路径:D:\Develop\Erlang
  3. 一路 Next → Install → 完成

2.3 配置环境变量(关键)

  1. 此电脑 → 右键 → 属性 → 高级系统设置 → 环境变量
  2. 系统变量→ 新建:
    • 变量名:ERLANG_HOME
    • 变量值:D:\Develop\Erlang(你的安装根目录)
  3. 编辑Path→ 新建:

    plaintext

    %ERLANG_HOME%\bin
  4. 保存 → 重启 CMD

2.4 验证

管理员 CMD 执行:

bash

运行

erl -v

出现版本号(如Erlang/OTP 26.2)即成功。


三、第二步:安装 RabbitMQ

3.1 下载

  • 官方:https://github.com/rabbitmq/rabbitmq-server/releases
  • 下载:rabbitmq-server-3.13.0.exe

3.2 安装(管理员权限)

  1. 右键安装包 →以管理员身份运行
  2. 自定义路径:D:\Develop\RabbitMQ
  3. 一路 Next → Install → 完成(自动注册为 Windows 服务)

3.3 配置环境变量(可选,方便命令行)

  1. 编辑Path→ 新建:

    plaintext

    D:\Develop\RabbitMQ\sbin
  2. 保存 → 重启 CMD

四、第三步:启动服务 + 开启 Web 管理控制台

4.1 启动 RabbitMQ 服务

管理员 CMD 执行:

bash

运行

# 启动服务 rabbitmq-service start # 停止服务(如需) rabbitmq-service stop # 重启服务 rabbitmq-service restart

4.2 开启 Web 管理插件(可视化界面)

bash

运行

rabbitmq-plugins enable rabbitmq_management

✅ 成功提示:Plugin configuration unchanged.


五、第四步:登录管理控制台

  1. 浏览器访问:

    plaintext

    http://localhost:15672
  2. 默认账号 / 密码:

    plaintext

    账号:guest 密码:guest
  3. 登录成功即可管理队列、交换机、消息等。

六、常用命令(管理员 CMD)

表格

功能命令
启动服务rabbitmq-service start
停止服务rabbitmq-service stop
重启服务rabbitmq-service restart
开启管理界面rabbitmq-plugins enable rabbitmq_management
查看所有用户rabbitmqctl list_users
查看所有队列rabbitmqctl list_queues
查看插件状态rabbitmq-plugins list

七、常见问题与解决方案

7.1 启动报错:Erlang 未找到

  • 原因:版本不匹配 / 环境变量未配置 / 未用管理员权限
  • 解决:
    1. 核对版本(Erlang 26.x + RabbitMQ 3.13.x)
    2. 检查ERLANG_HOMEPath配置
    3. 重启电脑,用管理员 CMD 重试

7.2 无法登录管理控制台

  • 原因:未开启管理插件 / 端口 15672 被占用
  • 解决:
    1. 执行rabbitmq-plugins enable rabbitmq_management
    2. 检查端口:netstat -ano | findstr :15672,杀死占用进程

7.3 服务启动后自动停止(错误 1067)

  • 原因:安装路径含中文 / 空格 / 旧数据冲突
  • 解决:
    1. 卸载 RabbitMQ,重装到纯英文路径
    2. 删除数据目录:C:\Users\你的用户名\AppData\Roaming\RabbitMQ
    3. 重启电脑后重试

7.4 Java 连接失败

  • 原因:服务未启动 / 账号密码错误 / 端口 5672 被占用
  • 解决:
    1. 启动服务,确认guest账号可用
    2. 检查 5672 端口:netstat -ano | findstr :5672

八、Spring Boot 快速示例(生产者 + 消费者)

8.1 pom.xml

xml

<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency> </dependencies>

8.2 application.yml

yaml

spring: rabbitmq: host: 127.0.0.1 port: 5672 username: guest password: guest queue-name: test_queue

8.3 队列配置

java

运行

import org.springframework.amqp.core.Queue; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class RabbitConfig { @Value("${spring.rabbitmq.queue-name}") private String queueName; @Bean public Queue testQueue() { return new Queue(queueName, true); } }

8.4 生产者

java

运行

import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class Producer { @Autowired private RabbitTemplate rabbitTemplate; @Value("${spring.rabbitmq.queue-name}") private String queueName; @GetMapping("/send") public String send() { String msg = "Hello RabbitMQ Win11!"; rabbitTemplate.convertAndSend(queueName, msg); return "发送成功:" + msg; } }

8.5 消费者

java

运行

import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component; @Component public class Consumer { @RabbitListener(queues = "${spring.rabbitmq.queue-name}") public void receive(String msg) { System.out.println("收到消息:" + msg); } }

8.6 测试

  1. 启动项目
  2. 访问:http://localhost:8080/send
  3. 控制台打印收到消息,控制台队列同步更新
http://www.jsqmd.com/news/540089/

相关文章:

  • 企业AI应用开发:从智能体概念到生产落地的完整指南
  • 南京装修公司真实口碑榜:2026业主用真金白银选出的10家靠谱企业 - 资讯焦点
  • 智能客服系统架构设计与实现:从NLP到高并发的技术选型
  • 从模拟到现实:用LLM生成的任务数据如何提升机器人泛化能力?XArm-7实测案例
  • WebSocket vs HTTP性能对比:HarmonyOS下如何选择实时通信方案?
  • 2026余干县优质医院推荐指南 - 资讯焦点
  • 跨越ROS版本鸿沟:构建稳定的一主多从分布式机器人系统
  • PyTorch 2.8镜像环境部署:10分钟完成RTX 4090D + CUDA 12.4开箱即用
  • 超越极限:YOLOv8融合Dynamic Head(统一尺度-空间-任务感知注意力)—— 原理详解、代码实现与性能验证
  • 非隔离双向DC/DC变换器(Buck-Boost)仿真:模型采用双闭环控制,实现恒压恒流充放电保护
  • 打印各种三角形图案
  • 如何用ChatGPT高效撰写文献综述:精准指令设计与避坑指南
  • 破解B站缓存困局:m4s-converter让视频资产重获自由
  • Comfy UI提示词优化实战:从效率瓶颈到流畅交互的架构演进
  • 《从“成本中心”到“价值引擎”:沃虎一体化RJ45模块如何重构网口BOM与供应链效率》
  • 软件信创方案(Word)
  • MATLAB串口通信保姆级教程:从虚拟串口搭建到Arduino数据采集实战
  • XC泰山服务器麒麟V10系统安装全流程解析
  • 用MATLAB实现基于小波分解子模式和盒维数的车型识别
  • 如何快速实现浏览器自动化:n8n Puppeteer节点完整指南
  • 不止于复现:拆解Mfuzz聚类结果,教你从时间序列图中挖掘生物学故事
  • 移动端H5开发必看:viewport-fit=cover的正确使用姿势与常见坑点
  • 深入解析 Chrome 渲染进程合并优化策略:以 desktop_view 为例
  • 探索基于 MATLAB 的最佳维纳滤波器盲解卷积算法
  • 国产64G超大显存GPU,海光K100
  • 架构必知:安全架构,我懂了!(附架构图)
  • AI生成教材秘诀曝光!低查重率让你的教材更具竞争力
  • 揭秘书匠策AI:论文开题报告的智能好帮手
  • CosyVoice本地化部署实战:如何高效指定输出文件路径
  • 从‘山峰’与‘山谷’理解拉普拉斯锐化:一个给视觉思考者的MATLAB实操