CentOS 7安装部署RabbitMQ
一、版本适配说明
- Erlang 版本:23.3.4.11(与 RabbitMQ 3.8.30 完全兼容)
- RabbitMQ 版本:3.8.30
二、安装步骤
1,更换国内 YUM 源
# 备份默认源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.bak# 下载阿里云源(关键步骤,解决CentOS 7默认源失效问题)
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo# 清理缓存并生成新缓存
yum clean all
yum makecache fast
2. 安装系统基础依赖
先安装后续步骤必需的工具和依赖库,避免安装时缺包报错:
# 更新系统软件包缓存(可选,加速后续安装)
sudo yum update -y# 安装依赖:socat(RabbitMQ 必需)、wget(下载文件)、logrotate(日志轮转)
sudo yum install -y socat wget logrotate
验证:无报错即成功(若提示 “已安装” 也正常)。
3. 彻底卸载旧版本 Erlang
若之前装过旧 Erlang,必须先卸载干净:
# 1. 查看所有已安装的 Erlang 相关包
rpm -qa | grep erlang# 2. 批量卸载所有 Erlang 包(无需手动改包名,命令自动匹配)
sudo rpm -e --nodeps $(rpm -qa | grep erlang)# 3. 强制删除残留文件(防止卸载不彻底)
sudo rm -rf /usr/lib64/erlang /usr/share/erlang
验证:再次执行 rpm -qa | grep erlang
,无任何输出即卸载干净。
4. 下载并安装 Erlang
这里注意避开网络问题,实在不行,梯子或手动下载啥的。
# 1. 下载 Erlang 23.3.4.11
wget https://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-23.3.4.11-1.el7.x86_64.rpm/download.rpm -O erlang-23.3.4.11-1.el7.x86_64.rpm# 2. 安装下载好的 Erlang RPM 包
sudo rpm -ivh erlang-23.3.4.11-1.el7.x86_64.rpm
验证:执行 erl -version
,输出类似以下内容即成功:
Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 11.2.2.10
5. 下载并安装 RabbitMQ 3.8.30
# 1. 下载 RabbitMQ 3.8.30(若已下载,跳过此步)
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.30/rabbitmq-server-3.8.30-1.el7.noarch.rpm# 2. 导入 RabbitMQ 签名密钥(若之前导入失败,可加 --no-check-certificate 跳过证书验证)
sudo rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc --no-check-certificate# 3. 安装 RabbitMQ
sudo rpm -Uvh rabbitmq-server-3.8.30-1.el7.noarch.rpm
验证:执行 rpm -qa | grep rabbitmq
,输出 rabbitmq-server-3.8.30-1.el7.noarch
即成功。
6. 启动 RabbitMQ 并设置开机自启
# 1. 启动 RabbitMQ 服务
sudo systemctl start rabbitmq-server# 2. 设置开机自启(重启服务器后自动运行)
sudo systemctl enable rabbitmq-server
验证:执行 sudo systemctl status rabbitmq-server
,看到 Active: active (running)
即成功。
7. 启用 Web 管理界面(可视化操作)
# 启用 rabbitmq_management 插件(会自动依赖其他必需插件)
sudo rabbitmq-plugins enable rabbitmq_management
验证:执行 sudo rabbitmq-plugins list | grep management
,输出以下 3 行即成功:
[E*] rabbitmq_management 3.8.30
[E*] rabbitmq_management_agent 3.8.30
[E*] rabbitmq_web_dispatch 3.8.30
8. 创建管理员用户(默认 guest 仅本地访问,需自定义用户)
# 1. 创建用户(替换 admin 为用户名,123456 为密码,建议生产环境改复杂密码)
sudo rabbitmqctl add_user admin 123456# 2. 给用户设置 "超级管理员" 权限(可管理所有资源)
sudo rabbitmqctl set_user_tags admin administrator# 3. 授予用户对根虚拟主机(/)的所有权限(读、写、管理)
sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
验证:执行 sudo rabbitmqctl list_users
,看到 admin
用户的 tags
为 [administrator]
即成功。
9. 配置防火墙(开放访问端口)
若服务器启用了防火墙,需开放 RabbitMQ 的 2 个核心端口:
# 1. 开放 AMQP 通信端口(5672,程序调用 RabbitMQ 用)
sudo firewall-cmd --zone=public --add-port=5672/tcp --permanent# 2. 开放 Web 管理端口(15672,浏览器访问控制台用)
sudo firewall-cmd --zone=public --add-port=15672/tcp --permanent# 3. 重启防火墙,使配置生效
sudo firewall-cmd --reload
验证:执行 sudo firewall-cmd --list-ports
,输出包含 5672/tcp 15672/tcp
即成功。
三、最终验证
1. 访问 Web 控制台
打开浏览器,输入地址:http://你的服务器IP:15672
- 输入用户名
admin
、密码123456
(你之前设置的) - 登录后能看到 RabbitMQ 管理界面,顶部显示
RabbitMQ 3.8.30
和Node: ... (running)
即正常。
2. 命令行测试消息收发(可选,验证通信正常)
# 1. 安装消息测试工具(amqp-tools)
sudo yum install -y amqp-tools# 2. 发送一条测试消息到 "test_queue" 队列
echo "Hello RabbitMQ" | amqp-publish -u amqp://admin:123456@localhost -e amq.default -r test_queue# 3. 从 "test_queue" 队列接收消息(接收1条后退出)
amqp-consume -u amqp://admin:123456@localhost -q test_queue -c 1 cat
验证:接收命令输出 Hello RabbitMQ
即消息收发正常。
四、常用命令(后续管理用)
操作目的 | 命令 |
---|---|
重启 RabbitMQ | sudo systemctl restart rabbitmq-server |
停止 RabbitMQ | sudo systemctl stop rabbitmq-server |
查看 RabbitMQ 日志 | sudo tail -f /var/log/rabbitmq/rabbit@localhost.log |
查看所有队列 | sudo rabbitmqctl list_queues |
修改用户密码 | sudo rabbitmqctl change_password admin 新密码 |
删除匿名用户(安全) | sudo rabbitmqctl delete_user guest |