在分布式系统和微服务架构中,消息队列扮演着至关重要的角色——它不仅能解耦服务组件,还能提升系统吞吐量、保障异步通信的可靠性。而RabbitMQ作为开源领域最流行、最稳定的消息中间件之一,凭借其强大的功能和友好的管理界面,被广泛应用于各类生产环境中。
然而,对于刚接触RabbitMQ的开发者来说,如何在CentOS 7上顺利完成安装和配置,往往是一道不小的门槛。依赖关系复杂、Erlang版本要求、插件启用等问题稍有不慎就可能导致部署失败。
本文将从零开始,手把手带你完成RabbitMQ在CentOS 7上的完整安装与配置。
2 RabbitMQ 简介
RabbitMQ是一个开源的消息中间件(Message Broker),用于在分布式系统中实现可靠的消息传递。它基于AMQP(高级消息队列协议)构建,支持多种消息协议。
核心作用:
解耦:生产者和消费者无需直接通信,通过RabbitMQ间接传递消息,降低系统模块间的依赖
异步:生产者发送消息后可立即返回,无需等待消费者处理完成,提升响应速度
削峰:在高并发场景下,消息可暂存于队列中,避免下游服务被瞬时流量压垮
核心组件: Producer(生产者)、Consumer(消费者)、Queue(队列)、Exchange(交换机)、Binding(绑定)、Virtual Host(虚拟主机)
3 安装
3.1 软件准备
【文章结尾有安装包免费获取方式】

# 安装依赖:socat(RabbitMQ 必需)、wget(下载文件)、logrotate(日志轮转)yum install -y socat wget logrotate

# 1. 查看所有已安装的 Erlang 相关包rpm -qa | grep erlang# 2. 批量卸载所有 Erlang 包(无需手动改包名,命令自动匹配)rpm -e --nodeps $(rpm -qa | grep erlang)# 3. 强制删除残留文件(防止卸载不彻底)rm -rf /usr/lib64/erlang /usr/share/erlang

验证:再次执行 rpm -qa | grep erlang,无任何输出即卸载干净。
把3.1中的软件列表上传到/usr/local/src中。
cd /usr/local/srcrpm -ivh erlang-23.3.4.11-1.el7.x86_64.rpm

验证:执行 erl -version,输出类似以下内容即成功:

# 导入 RabbitMQ 签名密钥rpm --import rabbitmq-release-signing-key.asc

# 安装 RabbitMQrpm -Uvh rabbitmq-server-3.8.30-1.el7.noarch.rpm

验证:执行 rpm -qa | grep rabbitmq,输出 rabbitmq-server-3.8.30-1.el7.noarch 即成功。

# 启动 RabbitMQ 服务systemctl start rabbitmq-server# 设置开机自启(重启服务器后自动运行)systemctl enable rabbitmq-server

验证:执行 systemctl status rabbitmq-server,看到 Active: active (running) 即成功。

rabbitmq-plugins enable rabbitmq_management
验证:执行 rabbitmq-plugins list | grep management,输出以下 3 行即成功:

# 1. 创建用户(替换 admin 为用户名,123456 为密码,建议生产环境改复杂密码)rabbitmqctl add_user admin 123456# 2. 给用户设置 "超级管理员" 权限(可管理所有资源)rabbitmqctl set_user_tags admin administrator# 3. 授予用户对根虚拟主机(/)的所有权限(读、写、管理)rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

http://你的服务器IP:15672
输入用户名 admin、密码 123456(你之前设置的)


到这里,你已经成功在CentOS 7上完成了RabbitMQ的完整安装与配置!🎉
回顾一下我们走过的步骤:
✅ 安装了socat依赖工具
✅ 安装了兼容版本的Erlang环境
✅ 安装了RabbitMQ服务器
✅ 启动了服务并设置开机自启
✅ 启用了Web管理插件
✅ 创建了管理员用户
✅ 配置了防火墙规则
现在,你可以通过Web管理界面 http://你的服务器IP:15672 来管理和监控你的RabbitMQ服务了。接下来,就可以开始在你的应用程序中集成RabbitMQ,体验消息队列带来的解耦、异步和削峰能力。
【温馨提示】
夜雨聆风