前言
在现代分布式系统和微服务架构中,消息队列扮演着至关重要的角色——它不仅能解耦服务组件,还能提升系统吞吐量、保障异步通信的可靠性。而RabbitMQ,作为开源领域最流行、最稳定的消息中间件之一,凭借其强大的功能、友好的管理界面和丰富的协议支持,被广泛应用于各类生产环境中。
然而,对于刚接触RabbitMQ的开发者或运维人员来说,如何在Linux系统(尤其是CentOS 7)上顺利完成安装、配置并快速验证其基本功能,往往是一道不小的门槛。依赖关系复杂、Erlang环境要求、插件启用、用户权限设置等问题,稍有不慎就可能导致部署失败。
本文将从零开始,手把手带你完成RabbitMQ在CentOS 7上的完整安装与基础使用。我们将涵盖:
- Erlang与RabbitMQ的正确安装方式
- 启用Web管理插件并访问控制台
- 创建用户、设置权限与虚拟主机
- 发送和接收第一条消息的实操演示
无论你是后端开发、DevOps工程师,还是正在学习消息队列的新手,只要跟着本教程一步步操作,就能在短时间内搭建起一个可用的RabbitMQ服务,并迈出消息驱动架构的第一步。
准备好了吗?让我们开始吧!
1.什么是RabbitMQ?
RabbitMQ是一个开源的 消息中间件(Message Broker),用于在分布式系统中实现可靠的消息传递。它基于AMQP(Advanced Message Queuing Protocol,高级消息队列协议) 构建,支持多种消息协议(如MQTT、STOMP等),广泛应用于微服务通信、任务队列、日志处理、事件驱动架构等场景。
核心作用:解耦、异步、削峰
- 解耦(Decoupling)
生产者和消费者无需直接通信,通过RabbitMQ间接传递消息,降低系统模块间的依赖。
-
异步(Asynchronous Processing)
生产者发送消息后可立即返回,无需等待消费者处理完成,提升响应速度和系统吞吐量。
-
流量削峰(Load Leveling)
在高并发场景下,消息可暂存于队列中,避免下游服务被瞬时流量压垮。
核心组件:
| 组件 | 说明 |
|---|---|
| Producer(生产者) | 发送消息的应用程序 |
| Consumer(消费者) | 接收并处理消息的应用程序 |
| Queue(队列) | 存储消息的缓冲区,位于 RabbitMQ 服务端 |
| Exchange(交换机) | 接收生产者消息,并根据规则(Routing Key + Binding)将消息路由到一个或多个队列 |
| Binding(绑定) | 定义 Exchange 与 Queue 之间的关联关系 |
| Virtual Host(虚拟主机) | 逻辑隔离单元,类似“命名空间”,可在同一 RabbitMQ 实例中划分多租户环境 |
主要特性
- 高可靠性:支持消息持久化、确认机制(Publisher Confirms / Consumer Acknowledgements)
- 灵活路由:支持 Direct、Topic、Fanout、Headers 等多种交换类型
- 集群与高可用:支持多节点集群、镜像队列(Mirrored Queues)
- 管理界面:提供 Web UI 插件(rabbitmq_management),可视化监控队列、连接、用户等
- 多语言客户端:官方支持 Java、Python、Go、.NET、Node.js、Ruby 等主流语言
- 跨平台:基于 Erlang/OTP 开发,可在 Linux、Windows、macOS 等系统运行
简单使用场景示例
用户注册后需要发送欢迎邮件。
若直接调用邮件服务,一旦邮件服务不可用,注册流程就会失败。
- 引入 RabbitMQ后:注册服务作为 生产者,将“发送邮件”任务发到队列;
- 邮件服务作为 消费者,从队列中异步拉取任务执行。
即使邮件服务暂时宕机,消息也不会丢失,待其恢复后继续处理。
RabbitMQ = 消息的“邮局”
它不生产消息,也不消费消息,只负责安全、高效地把消息从“发件人”投递给“收件人”。
因其稳定性、灵活性和活跃的社区生态,RabbitMQ成为了企业级消息通信的首选之一。接下来,我们将进入实战环节——在CentOS 7上安装并快速上手RabbitMQ!
2.前提条件
安装任何软件包之前,建议使用以下命令更新软件包和存储库:
yum -y update
Erlang在默认的YUM存储库中不可用,因此您将需要安装EPEL存储库:
yum -y install epel-release
yum -y update
RabbitMQ是基于Erlang语言开发,所以在安装RabbitMQ之前,需要先安装Erlang语言:
yum -y install erlang socat
检查Erlang版本,默认是最新版本:
erl -version
3.安装RabbitMQ
下载RabbitMQ:
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/rabbitmq_v3_6_16/rabb
安装RabbitMQ:
rpm -ivh rabbitmq-server-3.6.16-1.el7.noarch.rpm
安装管理界面的插件(没有这个插件无法启动管理界面):
rabbitmq-plugins enable rabbitmq_management
开放5672和15672端口:
firewall-cmd --zone=public --add-port=5672/tcp --permanent && firewall-cmd --reload
firewall-cmd --zone=public --add-port=15672/tcp --permanent && firewall-cmd --reload
启动RabbitMQ服务:
systemctl start rabbitmq-server
systemctl status rabbitmq-server
systemctl stop rabbitmq-server
systemctl enable rabbitmq-server
部署完成后,在浏览器中输入 http://IP:15672 就能看到RabbitMQ的管理界面:
4.首次登录注册用户
默认的账号密码仅限于本机localhost进行访问,所以需要添加一个远程登录的用户:
创建用户:
rabbitmqctl add_user 用户名 密码
设置为管理员(允许登录管理界面):
RabbitMQ 中,user tags是用来定义用户的“角色”或“标签”,例如:
- administrator(管理员)
- management
- policymaker
- monitoring
rabbitmqctl set_user_tags 用户名 administrator
或者更轻量级地设置为管理用户:
rabbitmqctl set_user_tags 用户名 management
设置权限(必须有):
rabbitmqctl set_permissions -p "/" 用户名 ".*" ".*" ".*"
重启RabbitMQ插件(可选):
rabbitmq-plugins enable rabbitmq_management
或者重启RabbitMQ服务:
systemctl restart rabbitmq-server
重新加载登录页面,输入用户名及密码:
登录成功:
5.后台管理的使用
查看当前用户,可以看见当前用户,及用户组:
通过Web界面添加用户:
Admin → Users → Add user
输入基本信息,Tags选择administrator,这是管理员权限,然后点击添加用户:
保存后,添加成功:
点击用户名,进入详情页:
主页有更详情的配置:
在实际开发或测试中,很多人把RabbitMQ跑在本地电脑或公司内网服务器上,但外部同事、客户或云端服务却无法访问。这时候,cpolar就派上了用场——不用申请公网IP、不用改路由器设置,只要在运行RabbitMQ的机器上装个cpolar,一条命令就能生成一个外网地址,让别人通过浏览器访问管理界面,或者用客户端连接消息队列。尤其适合临时联调、远程演示或小团队快速协作,既省事又安全,真正解决了“我本地跑得好好的,你却连不上”的现实痛点。
6.安装cpolar实现随时随地开发
6.1 什么是cpolar?
cpolar是一款安全高效的内网穿透工具,无需公网IP或复杂配置,只需一条命令,即可将本地服务器、Web服务或任意端口映射到公网,让你随时随地远程访问内网应用,特别适合开发调试、远程运维和应急部署等场景。
6.2 部署cpolar
cpolar 可以将你本地电脑中的服务(如 SSH、Web、数据库)映射到公网。即使你在家里或外出时,也可以通过公网地址连接回本地运行的开发环境。
❤️以下是安装cpolar步骤:
使用一键脚本安装命令:
sudo curl https://get.cpolar.sh | sh
安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)
sudo systemctl status cpolar
Cpolar安装和成功启动服务后,在浏览器上输入虚拟机主机IP加9200端口即:【http://ip:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:
打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。
7.配置公网地址
登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:
- 隧道名称:可自定义,本例使用了:rabbitmq,注意不要与已有的隧道名称重复
- 协议:http
- 本地地址:15672
- 域名类型:随机域名
- 地区:选择China Top
创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用地址访问。
访问成功。
8.保留固定公网地址
使用cpolar为其配置二级子域名(cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站),该地址为固定地址,不会随机变化。
点击左侧的预留,选择保留二级子域名,地区选择china Top,然后设置一个二级子域名名称,我使用的是rabbitmq,大家可以自定义。填写备注信息,点击保留。
登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑。
修改隧道信息,将保留成功的二级子域名配置到隧道中
- 域名类型:选择二级子域名
- Sub Domain:填写保留成功的二级子域名
- 地区: China Top
点击更新
更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。
最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问的页面,这样一个永久不会变化的二级子域名公网网址即设置好了。
总结
本文手把手教你如何在CentOS 7上安装并快速上手RabbitMQ:从配置系统环境、安装Erlang依赖,到通过官方YUM源部署RabbitMQ服务,启用Web管理插件,创建管理员用户,开放防火墙端口,直至成功访问管理界面并验证消息队列功能。所有步骤均基于生产常用实践,命令清晰、操作简单,帮助开发者或运维人员在短时间内搭建起可用的RabbitMQ环境,轻松迈出消息中间件使用的第一步。
感谢您对本篇文章的喜爱,有任何问题欢迎留言交流。cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站



































