RabbitMQ系列文章(第二篇):RabbitMQ环境搭建——Windows/Linux/docker全教程(避坑指南)

news2026/5/1 20:22:13
大家好欢迎来到RabbitMQ系列的第二篇文章上一篇我们搞懂了消息队列的核心价值、主流MQ的对比以及RabbitMQ的优势今天我们正式进入实操环节——环境搭建。环境搭建是所有实操的基础也是新手最容易踩坑的环节比如Erlang版本和RabbitMQ不兼容、Linux防火墙没开放端口、Docker部署后访问不到管理界面等。今天这篇文章我们将分步讲解Windows、LinuxCentOS/Ubuntu、Docker三种部署方式全程标注避坑点无论你用哪种系统都能跟着步骤顺利搭建好RabbitMQ环境为后续的实操学习创建队列、发送消息等做好准备。核心前提RabbitMQ是基于Erlang语言开发的因此无论哪种部署方式都需要先安装Erlang环境Docker部署可省略手动安装镜像已自带且Erlang版本必须与RabbitMQ版本对应这是最关键的避坑点大家一定要注意一、前置准备Erlang与RabbitMQ版本对应关系必看避坑很多新手搭建失败核心原因就是Erlang版本和RabbitMQ版本不匹配导致启动失败。这里给大家推荐一组稳定兼容的版本新手首选无需纠结版本选择也可以根据自己的需求在RabbitMQ官方文档查询对应关系Erlang版本25.3.2稳定版适配绝大多数RabbitMQ版本RabbitMQ版本3.12.10稳定版支持所有核心特性适配Erlang 25.x避坑提示不要安装最新版Erlang和RabbitMQ最新版可能存在兼容性问题也不要随意搭配版本严格按照官方对应关系选择本文全程基于上述推荐版本讲解。官方版本对应查询地址备用https://www.rabbitmq.com/which-erlang.html复制到浏览器可直接访问二、Windows系统部署新手首选操作最简单Windows系统部署无需复杂的命令全程图形化操作适合刚入门的新手步骤如下步骤1安装Erlang环境下载Erlang安装包访问Erlang官方下载地址https://www.erlang.org/downloads选择“OTP 25.3.2 Windows 64-bit”根据自己系统位数选择现在大多是64位点击下载。安装Erlang双击下载的.exe安装包点击“Next”选择安装路径建议默认路径避免中文路径比如C:\Program Files\Erlang OTP一路点击“Next”最后点击“Finish”完成安装。配置Erlang环境变量关键步骤右键“此电脑”→“属性”→“高级系统设置”→“环境变量”。在“系统变量”中点击“新建”变量名填写“ERLANG_HOME”变量值填写Erlang的安装路径比如C:\Program Files\Erlang OTP点击“确定”。找到“系统变量”中的“Path”双击打开点击“新建”输入“%ERLANG_HOME%\bin”点击“确定”保存所有环境变量配置。验证Erlang是否安装成功打开cmd命令提示符输入“erl -version”如果出现Erlang版本信息比如Erlang/OTP 25 [erts-13.2.2.1]说明安装成功如果提示“erl不是内部或外部命令”说明环境变量配置错误重新检查路径。避坑提示安装路径一定不要有中文、空格否则会导致后续RabbitMQ启动失败环境变量配置后需要关闭cmd重新打开才能生效。步骤2安装RabbitMQ下载RabbitMQ安装包访问RabbitMQ官方下载地址https://www.rabbitmq.com/download.html找到“Windows Installer”选择“rabbitmq-server-3.12.10.exe”下载对应我们推荐的版本。安装RabbitMQ双击安装包点击“Next”选择安装路径建议默认路径与Erlang安装路径保持一致的磁盘比如C:\Program Files\RabbitMQ Server一路点击“Next”最后点击“Finish”完成安装。启动RabbitMQ服务方式1图形化启动。打开“服务”WinR输入“services.msc”找到“RabbitMQ”右键“启动”启动成功后状态会显示“正在运行”。方式2命令行启动。打开cmd以管理员身份运行输入命令“rabbitmq-service start”提示“RabbitMQ service started successfully”说明启动成功。验证RabbitMQ是否启动成功打开浏览器输入“http://localhost:15672”如果能看到RabbitMQ管理界面的登录页说明启动成功。避坑提示如果启动失败大概率是Erlang版本不兼容或者安装路径有中文/空格如果启动成功但访问不到管理界面检查RabbitMQ服务是否真的在运行或者端口是否被占用。步骤3配置RabbitMQ管理界面默认已开启无需额外配置RabbitMQ默认自带Web管理界面默认端口是15672默认账号密码都是“guest”仅本地访问可用后续可修改。操作打开浏览器输入“http://localhost:15672”输入账号guest、密码guest点击登录即可进入管理界面后续文章会详细讲解管理界面的使用。三、Linux系统部署CentOS/Ubuntu双版本服务器常用Linux系统是服务器部署的首选这里分别讲解CentOS主流服务器系统和Ubuntu两种版本的部署步骤操作均通过命令行完成新手跟着复制命令即可。一CentOS系统部署步骤1安装Erlang环境安装依赖打开终端输入以下命令安装Erlang所需的依赖包yuminstall-ygcc gcc-c glibc-develmakencurses-devel openssl-devel autoconf2.下载并解压Erlang安装包# 下载Erlang 25.3.2安装包wgethttps://github.com/erlang/otp/releases/download/OTP-25.3.2/otp_src_25.3.2.tar.gz# 解压安装包tar-zxvfotp_src_25.3.2.tar.gz# 进入解压后的目录cdotp_src_25.3.23.编译并安装Erlang# 配置编译参数默认路径安装./configure--prefix/usr/local/erlang --without-javac# 编译耗时较长耐心等待make# 安装makeinstall4.配置Erlang环境变量# 编辑环境变量配置文件vi/etc/profile# 在文件末尾添加以下内容exportERLANG_HOME/usr/local/erlangexportPATH$ERLANG_HOME/bin:$PATH# 使环境变量生效source/etc/profile验证Erlang安装成功输入“erl -version”出现版本信息即成功。步骤2安装RabbitMQ下载RabbitMQ安装包wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.12.10/rabbitmq-server-generic-unix-3.12.10.tar.xz2.解压安装包# 先安装xz解压工具如果没有yuminstall-yxz# 解压xz包xz-drabbitmq-server-generic-unix-3.12.10.tar.xz# 解压tar包tar-xvfrabbitmq-server-generic-unix-3.12.10.tar# 将解压后的目录移动到/usr/local下并重命名为rabbitmqmvrabbitmq_server-3.12.10 /usr/local/rabbitmq3.配置RabbitMQ环境变量# 编辑环境变量配置文件vi/etc/profile# 在文件末尾添加以下内容exportRABBITMQ_HOME/usr/local/rabbitmqexportPATH$RABBITMQ_HOME/sbin:$PATH# 使环境变量生效source/etc/profile4.启动RabbitMQ服务# 启动RabbitMQ后台启动rabbitmq-server-detached# 查看RabbitMQ运行状态rabbitmqctl status5.开启管理界面插件关键步骤否则无法访问Web管理界面rabbitmq-pluginsenablerabbitmq_management6.开放端口关键避坑点RabbitMQ默认使用两个端口15672管理界面和5672消息通信需要开放这两个端口否则外部无法访问# 开放15672和5672端口firewall-cmd --add-port15672/tcp--permanentfirewall-cmd --add-port5672/tcp--permanent# 重新加载防火墙配置firewall-cmd--reload二Ubuntu系统部署Ubuntu系统部署步骤与CentOS类似主要差异在于依赖安装和包管理命令yum替换为apt步骤如下安装依赖sudoaptupdatesudoaptinstall-ygcc gmakencurses-dev openssl libssl-dev autoconf下载并安装Erlang步骤与CentOS一致仅依赖安装命令不同此处省略重复步骤参考CentOS步骤1的2-5步。下载并安装RabbitMQ与CentOS步骤2一致此处省略重复步骤。开放端口Ubuntu防火墙命令不同# 开放15672和5672端口sudoufw allow15672/tcpsudoufw allow5672/tcp# 重启防火墙sudoufw reload避坑提示Linux系统部署时一定要开放端口否则外部比如Windows电脑无法访问RabbitMQ管理界面如果启动失败检查Erlang版本、环境变量配置或者查看日志日志路径/usr/local/rabbitmq/var/log/rabbitmq。四、Docker部署推荐新手最快捷无需手动安装ErlangDocker部署是最简单、最快捷的方式无需手动安装ErlangRabbitMQ镜像已自带兼容的Erlang环境适合所有系统Windows、Linux、Mac前提是你的电脑已安装Docker。步骤1安装Docker新手补充已安装可跳过Docker安装步骤简单这里以Windows和Linux为例简要说明Windows系统下载Docker Desktophttps://www.docker.com/products/docker-desktop双击安装安装完成后启动Docker需开启Hyper-VWindows 10及以上版本支持。Linux系统CentOS/Ubuntu输入以下命令安装DockerCentOSyum install -y dockersystemctl start dockersystemctl enable docker验证Docker是否安装成功输入“docker -v”出现Docker版本信息即成功。步骤2拉取RabbitMQ镜像带管理界面RabbitMQ有两个镜像一个是基础版无管理界面一个是带管理界面版推荐我们拉取带管理界面的镜像输入以下命令# 拉取RabbitMQ 3.12.10版本带管理界面dockerpull rabbitmq:3.12.10-management避坑提示镜像名称一定要加“-management”否则没有Web管理界面如果拉取速度慢可以切换Docker镜像源比如阿里云镜像源。步骤3创建并启动RabbitMQ容器输入以下命令创建并启动RabbitMQ容器一次性配置好端口映射和默认账号密码# 创建并启动容器映射端口15672管理界面和5672消息通信dockerrun-d--namerabbitmq-p15672:15672-p5672:5672-eRABBITMQ_DEFAULT_USERguest-eRABBITMQ_DEFAULT_PASSguest rabbitmq:3.12.10-management命令解释-d后台运行容器–name rabbitmq给容器命名为rabbitmq方便后续管理-p 15672:15672将容器的15672端口映射到宿主机的15672端口管理界面-p 5672:5672将容器的5672端口映射到宿主机的5672端口消息通信-e RABBITMQ_DEFAULT_USERguest设置默认账号为guest-e RABBITMQ_DEFAULT_PASSguest设置默认密码为guest步骤4验证Docker部署是否成功查看容器运行状态输入“docker ps”如果能看到名称为rabbitmq的容器状态为“Up”说明启动成功。访问管理界面打开浏览器输入“http://宿主机IP:15672”Windows宿主机IP为localhostLinux宿主机IP为服务器IP输入账号guest、密码guest能成功登录即部署完成。避坑提示如果Docker容器启动失败输入“docker logs rabbitmq”查看日志大概率是端口被占用比如之前安装过RabbitMQ未停止服务如果访问不到管理界面检查Docker容器是否在运行以及宿主机端口是否开放。五、常见问题排查新手必看避坑汇总结合新手常踩的坑汇总以下常见问题及解决方案遇到问题直接对照排查问题1启动RabbitMQ失败提示“Erlang version not compatible”解决方案Erlang版本与RabbitMQ版本不匹配卸载当前Erlang或RabbitMQ重新安装本文推荐的兼容版本。问题2启动成功但访问不到管理界面http://localhost:15672无法打开解决方案检查RabbitMQ服务是否真的在运行Windows看服务Linux看进程Docker看容器。检查端口是否被占用Windows输入“netstat -ano | findstr 15672”Linux输入“netstat -tuln | grep 15672”如果被占用停止占用端口的进程重新启动RabbitMQ。Linux/Docker部署检查防火墙是否开放15672端口未开放则重新开放。Docker部署检查端口映射是否正确容器是否启动成功。问题3登录管理界面提示“Invalid credentials”账号密码错误解决方案默认账号密码都是guest仅本地访问可用如果是远程访问比如Linux服务器需要创建新的账号并授权后续文章会讲解。问题4Docker容器启动后很快就停止状态为Exited解决方案输入“docker logs rabbitmq”查看日志大概率是端口被占用或者镜像拉取不完整重新拉取镜像释放占用端口后再启动。六、下一篇预告恭喜你今天我们成功搭建了RabbitMQ环境无论是Windows、Linux还是Docker部署只要跟着步骤操作都能顺利完成。环境搭建完成后下一篇文章我们将深入学习RabbitMQ的核心概念——交换机、队列、绑定通过图文实操截图的方式让你彻底搞懂这些核心组件的作用以及它们之间的关系为后续发送、接收消息打下基础。如果这篇实操教程对你有帮助欢迎点赞、收藏如果你在搭建过程中遇到其他问题欢迎在评论区留言我会一一解答后续我们继续吃透RabbitMQ

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

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

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…