手把手教你:CentOS 7安装RabbitMQ并快速上手

前言

在现代分布式系统和微服务架构中,消息队列扮演着至关重要的角色——它不仅能解耦服务组件,还能提升系统吞吐量、保障异步通信的可靠性。而RabbitMQ,作为开源领域最流行、最稳定的消息中间件之一,凭借其强大的功能、友好的管理界面和丰富的协议支持,被广泛应用于各类生产环境中。

然而,对于刚接触RabbitMQ的开发者或运维人员来说,如何在Linux系统(尤其是CentOS 7)上顺利完成安装、配置并快速验证其基本功能,往往是一道不小的门槛。依赖关系复杂、Erlang环境要求、插件启用、用户权限设置等问题,稍有不慎就可能导致部署失败。

本文将从零开始,手把手带你完成RabbitMQ在CentOS 7上的完整安装与基础使用。我们将涵盖:

  • Erlang与RabbitMQ的正确安装方式
  • 启用Web管理插件并访问控制台
  • 创建用户、设置权限与虚拟主机
  • 发送和接收第一条消息的实操演示

无论你是后端开发、DevOps工程师,还是正在学习消息队列的新手,只要跟着本教程一步步操作,就能在短时间内搭建起一个可用的RabbitMQ服务,并迈出消息驱动架构的第一步。

准备好了吗?让我们开始吧!

image-20260702173506431

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

788c93d139bae2a9cc83fa07b6c289bd

Erlang在默认的YUM存储库中不可用,因此您将需要安装EPEL存储库:

yum -y install epel-release
yum -y update

8a2bb02cfa4238bac045251780814135

RabbitMQ是基于Erlang语言开发,所以在安装RabbitMQ之前,需要先安装Erlang语言:

yum -y install erlang socat 

f32cbce6707405579953410ed110c785

检查Erlang版本,默认是最新版本:

erl -version

6df1313921274dc137c84bef8a7efc3d

3.安装RabbitMQ

下载RabbitMQ:

wget https://github.com/rabbitmq/rabbitmq-server/releases/download/rabbitmq_v3_6_16/rabb

25d3af9e5c9402ea683440a67c9b4e0e

安装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

e687c199ca4ebd34fc5e767f1e66cfe6

部署完成后,在浏览器中输入 http://IP:15672 就能看到RabbitMQ的管理界面:

93084a88a002e1cc56e7ab9909e3bff2

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 "/" 用户名 ".*" ".*" ".*"

214eaf429f39f325dea91d07c4221e37

重启RabbitMQ插件(可选):

rabbitmq-plugins enable rabbitmq_management

或者重启RabbitMQ服务:

systemctl restart rabbitmq-server

510a50bce5ee5b5f4b71c43671d8692c

重新加载登录页面,输入用户名及密码:

3d86fe8597d0af15df206d8d354aa721

登录成功:

image-20260702172723592

5.后台管理的使用

查看当前用户,可以看见当前用户,及用户组:

image-20260702171056116

通过Web界面添加用户:

Admin → Users → Add user

image-20260702171156825

输入基本信息,Tags选择administrator,这是管理员权限,然后点击添加用户:

image-20260702171300533

保存后,添加成功:

image-20260702171444703

点击用户名,进入详情页:

image-20260702173038776

image-20260702173044815

主页有更详情的配置:

image-20260702173253554

在实际开发或测试中,很多人把RabbitMQ跑在本地电脑或公司内网服务器上,但外部同事、客户或云端服务却无法访问。这时候,cpolar就派上了用场——不用申请公网IP、不用改路由器设置,只要在运行RabbitMQ的机器上装个cpolar,一条命令就能生成一个外网地址,让别人通过浏览器访问管理界面,或者用客户端连接消息队列。尤其适合临时联调、远程演示或小团队快速协作,既省事又安全,真正解决了“我本地跑得好好的,你却连不上”的现实痛点。

6.安装cpolar实现随时随地开发

6.1 什么是cpolar?

cpolar是一款安全高效的内网穿透工具,无需公网IP或复杂配置,只需一条命令,即可将本地服务器、Web服务或任意端口映射到公网,让你随时随地远程访问内网应用,特别适合开发调试、远程运维和应急部署等场景。

6.2 部署cpolar

cpolar 可以将你本地电脑中的服务(如 SSH、Web、数据库)映射到公网。即使你在家里或外出时,也可以通过公网地址连接回本地运行的开发环境。

❤️以下是安装cpolar步骤:

官网在此:https://www.cpolar.com

使用一键脚本安装命令:

sudo curl https://get.cpolar.sh | sh

image-20250725104019896

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)

sudo systemctl status cpolar

22e5adfaf290a17fc3384bb296055259

Cpolar安装和成功启动服务后,在浏览器上输入虚拟机主机IP加9200端口即:【http://ip:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:

打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。

8a6698b1bf26d64ba3645827fbfb1c29

7.配置公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,本例使用了:rabbitmq,注意不要与已有的隧道名称重复
  • 协议:http
  • 本地地址:15672
  • 域名类型:随机域名
  • 地区:选择China Top

image-20260702174225248

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用地址访问。

image-20260702175018913

访问成功。

image-20260702175027662

8.保留固定公网地址

使用cpolar为其配置二级子域名(cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站),该地址为固定地址,不会随机变化。

image-20250918151358733

点击左侧的预留,选择保留二级子域名,地区选择china Top,然后设置一个二级子域名名称,我使用的是rabbitmq,大家可以自定义。填写备注信息,点击保留。

image-20260702175107225

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑

image-20260702175131529

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名
  • 地区: China Top

点击更新

image-20260702175212743

更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

image-20260702175227782

最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问的页面,这样一个永久不会变化的二级子域名公网网址即设置好了。

image-20260702175245700

总结

本文手把手教你如何在CentOS 7上安装并快速上手RabbitMQ:从配置系统环境、安装Erlang依赖,到通过官方YUM源部署RabbitMQ服务,启用Web管理插件,创建管理员用户,开放防火墙端口,直至成功访问管理界面并验证消息队列功能。所有步骤均基于生产常用实践,命令清晰、操作简单,帮助开发者或运维人员在短时间内搭建起可用的RabbitMQ环境,轻松迈出消息中间件使用的第一步。

感谢您对本篇文章的喜爱,有任何问题欢迎留言交流。cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站

Share:

发表回复

目录

On Key

推荐文章