当前位置: 首页 > news >正文

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 即消息收发正常。

四、常用命令(后续管理用)

操作目的命令
重启 RabbitMQsudo systemctl restart rabbitmq-server
停止 RabbitMQsudo 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
http://www.dtcms.com/a/418292.html

相关文章:

  • 本地怎么远程调试服务器
  • AndroidID重置功能开发
  • 【Byte 类型】编程基石:揭开 `Byte`(字节)的神秘面纱
  • 天津做网站哪家服务好北京正邦品牌设计公司
  • 外贸搜素网站android studio开发app实例
  • 5. Prompt 提示词
  • android 自定义样式 Toast 实现(兼容 Android 4.1+~Android 16(API 16))
  • android SharedPreferences 工具类 * 兼容 Android 16+ (API 16)
  • 宁波易通建设网站网站备案信息代码
  • 阿里云OpenLake及行业解决方案年度发布,助力千行百业Data+AI一体化融合
  • 独立站收款方式有哪些
  • 2025 年 Python 数据分析全栈学习路线:从入门到精通的进阶指南
  • 行业类网站应如何建设网站怎么建设以及维护
  • Go 和云原生 的现状和发展前景
  • C# 中Byte类型转化问题
  • 紫外UV相机在机器视觉检测方向的应用
  • 一款国产开源免费的项目管理工具 - Kanass,超级轻量、简洁
  • 自己做的网站百度搜到新增接入 新增网站
  • (七——下)复习(分布式链路追踪/Rabiit MQ使用/Api Gateway)
  • 前端八股文 Vue上
  • OpenHarmony SELinux全面技术指南:从原理到实践的系统安全防护(全网最全)
  • 分布式计算的集大成时刻:从技术烟囱到架构交响乐
  • 嘉兴网站建设网址织梦博客网站模板
  • 网站备案查询工信部官网泵网站建设
  • 香港科技大学工学院2026/2027年度研究生课程招生宣讲会-厦门大学专场
  • 基于Hadoop+Spark的商店购物趋势分析与可视化系统技术实现
  • 中科亿海微SoM模组——国产散热控制板
  • display ospf peer brief 概念及题目
  • verilog中的FIR滤波器和自控中一阶低通滤波器的区别和共性
  • 网络技术进阶:详解 /31 位掩码的六大常见问题