CentOS 8.2 环境下 RabbitMQ 3.8.3 消息队列服务部署指南
RabbitMQ 概述
RabbitMQ 是基于 AMQP 协议开发的开源消息代理解决方案。它通过插件机制扩展了对 STOMP、MQTT 等多种协议的支持。其核心服务采用 Erlang 语言构建,依托 OTP 框架实现集群和高可用性。本文详细记录在 CentOS 8.2 系统上部署 RabbitMQ 3.8.3 的完整流程。
环境配置
- CPU: 4核
- 内存: 8GB
- 硬盘: 50GB
- 操作系统: CentOS 8.2
- 主机名: rabbitmq.lianglab.cn
- IP地址: 192.168.6.176/24
第一步:系统更新与基础配置
通过 SSH 连接到服务器并以 root 用户执行操作。首先更新系统软件包并配置主机名:
hostnamectl set-hostname rabbitmq.lianglab.cn
dnf update -y
reboot
重启后检查操作系统和内核版本:
cat /etc/redhat-release
# CentOS Linux release 8.2.2004 (Core)
uname -a
# Linux rabbitmq.lianglab.cn 4.18.0-193.el8.x86_64
第二步:安装 EPEL 仓库
RabbitMQ 的某些依赖项位于 EPEL 仓库中,需提前启用:
dnf install -y epel-release
第三步:添加 RabbitMQ Yum 仓库
通过官方提供的 CentOS 消息仓库来安装 RabbitMQ,无需手动编译源码:
dnf -y install centos-release-rabbitmq-38
安装完成后检查仓库配置文件:
ls /etc/yum.repos.d/CentOS-Messaging-rabbitmq.repo
重新生成缓存:
dnf makecache
第四步:安装 RabbitMQ 服务
执行安装命令,系统会自动处理所有依赖(包括 Erlang 相关组件):
dnf install -y rabbitmq-server
安装完成后,启用并启动服务:
systemctl enable --now rabbitmq-server.service
验证服务状态:
systemctl status rabbitmq-server.service
● rabbitmq-server.service - RabbitMQ broker
Active: active (running) since Mon 2020-12-28 23:08:35 CST
第五步:启用管理界面
RabbitMQ 提供了可选的 Web 管理 UI,通过以下命令激活:
rabbitmq-plugins enable rabbitmq_management
确认管理端口(15672)是否监听:
ss -tulpn | grep 15672
tcp LISTEN 0 128 0.0.0.0:15672 0.0.0.0:* users:(("beam.smp",pid=2949,fd=98))
放行防火墙端口以允许远程访问:
firewall-cmd --add-port=15672/tcp --permanent
firewall-cmd --add-port=5672/tcp --permament
firewall-cmd --reload
第六步:用户与权限管理
默认的 guest 用户仅限本机访问,需创建管理员账户:
# 查看现有用户
rabbitmqctl list_users
# 创建新用户
rabbitmqctl add_user admin lianglab@passwd
# 授予管理员角色
rabbitmqctl set_user_tags admin administrator
# 修改密码
rabbitmqctl change_password admin lianglab@newpasswd
创建虚拟主机并分配权限:
# 添加虚拟主机
rabbitmqctl add_vhost /lianglab_vhost
# 为 admin 用户在该 vhost 上授予全部权限
rabbitmqctl set_permissions -p /lianglab_vhost admin ".*" ".*" ".*"
# 验证权限设置
rabbitmqctl list_permissions -p /lianglab_vhost
验证部署
在浏览器中打开 http://192.168.6.176:15672/,使用创建的 admin 账户登录。成功登录后即可在仪表板中对 RabbitMQ 进行可视化管理,包括队列、交换器、连接等操作。