【RabbitMQ】Linux上安装RabbitMQ详细步骤

RabbitMQ 安装

  • 前言
    • [一、RabbitMQ 版本确认和安装包下载](#一、RabbitMQ 版本确认和安装包下载)
    • [二、RabbitMQ 安装步骤与启动](#二、RabbitMQ 安装步骤与启动)
    • [三、RabbitMQ 用户创建、权限配置](#三、RabbitMQ 用户创建、权限配置)

前言

  RabbitMQ是一个开源的消息代理软件,实现了高级消息队列协议(AMQP),用于在不同的应用程序之间进行异步通信。RabbitMQ是一个由Erlang语言编写的消息中间件,它遵循AMQP协议,提供了稳定可靠的消息传输服务。

  最近公司迁移服务器,需要升级安装RabbitMQ,借此机会记录一下整个安装过程,有需要的可以直接参考此篇文章.

一、RabbitMQ 版本确认和安装包下载

  RabbitMQ依赖于Erlang语言,所以我们安装RabbitMQ必须要先安装Erlang,RabbitMQ和Erlang有版本对应关系,我们必须选择合适的版本才能安装成功,访问链接: 官网版本对照,查看版本对应关系。

  选定版本后访问链接下载安装包: 官方RabbitMQ安装包下载,官方Erlang安装包下载

本文选择4.0.7版本RabbitMQ和27.3版本Erlang

二、RabbitMQ 安装步骤与启动

  如果我们服务器上已经存在RabbitMQ的话,需要先将旧版本卸载后在进行安装

1、查看rabbitmq版本号

bash 复制代码
sudo rabbitmqctl --version

2、查看Erlang版本号

bash 复制代码
erl -version

3、停止运行当前rabbitmq(如果已存在的话)

bash 复制代码
sudo rabbitmqctl stop

4、卸载rabbitmq

bash 复制代码
sudo yum remove rabbitmq-server

如图所示表示已经卸载完成

5、验证卸载,提示命令未找到表示经卸载

bash 复制代码
sudo rabbitmqctl --version

6、卸载Erlang

bash 复制代码
sudo yum remove erlang

步骤4会卸载erlang,执行后会如下图显示,代表已经删除了

7、验证卸载,提示命令未找到表示经卸载

bash 复制代码
erl -version

8、上传安装包到服务器目录上

进入目录执行安装erlang

bash 复制代码
sudo rpm -ivh erlang-27.3-1.el8.x86_64.rpm 

9、验证erlang安装

bash 复制代码
erl -version

10、安装rabbitmq

bash 复制代码
sudo rpm -ivh rabbitmq-server-4.0.7-1.el8.noarch.rpm 

11、验证rabbitmq安装

bash 复制代码
sudo rabbitmqctl --version

至此,已经安装成功

12、启动rabbitmq服务

bash 复制代码
sudo systemctl start rabbitmq-server

其他命令:

停止rabbitmq服务

bash 复制代码
sudo systemctl stop rabbitmq-server

重启rabbitmq服务

bash 复制代码
sudo systemctl restart rabbitmq-server

13、设置开机自动启动

bash 复制代码
sudo systemctl enable rabbitmq-server

14、检查启动状态

bash 复制代码
sudo systemctl status rabbitmq-server

如图表示已启动成功

15、启用管理插件

bash 复制代码
sudo rabbitmq-plugins enable rabbitmq_management

16、配置端口开放,管理插件需要开放两个端口,AMQP 协议端口:5672,管理界面端口:15672

开放15672端口:

bash 复制代码
firewall-cmd --zone=public --add-port=15672/tcp --permanent

开放5672端口:

bash 复制代码
firewall-cmd --zone=public --add-port=5672/tcp --permanent

重启防火墙:

bash 复制代码
firewall-cmd --reload

17、访问web界面

浏览器输入http://服务器ip:15672/,不过默认guest账户是不允许远程访问的

三、RabbitMQ 用户创建、权限配置

1、查看guest默认用户权限

bash 复制代码
 sudo rabbitmqctl list_user_permissions guest

如下图所示该用户是没有读权限的,允许 guest 用户从远程访问管理界面存在安全风险,一般情况下都会新建一个用户

2、创建用户、授权

bash 复制代码
rabbitmqctl add_user 用户名 密码 #创建用户

如下图创建一个root用户,但是还不能使用登录,还需要添加虚拟主机、配置权限

3、添加虚拟主机

  虚拟主机(Virtual Host) 是一个独立的命名空间,用于隔离不同的应用程序或环境。每个虚拟主机都有自己的交换机、队列、绑定和权限设置,这样可以避免不同应用程序之间的资源冲突和数据泄露。

bash 复制代码
rabbitmqctl add_vhost /root

4、查看虚拟主机

bash 复制代码
sudo rabbitmqctl list_vhosts

5、用户添加权限

其中 -胖表示制定虚拟主机,后面跟着用户名,用户名后面代表权限,从左到右分别表示配置权限、写权限、读权限,利用正则表达式陪匹配权限,.表示精确匹配,.*表示允许用户对所有资源执行相应的操作,^表示按照什么开头匹配资源,例如:只允许用户操作以queue1开头的队列,^queue1.*

bash 复制代码
rabbitmqctl set_permissions -p /虚拟主机 用户 '.*' '.*' '.*' 

如配置所有权限

6、授权

  set_user_tags 命令用于为 RabbitMQ 用户分配角色标签(tags),这些标签决定了用户在 RabbitMQ 中可以执行的操作范围。

bash 复制代码
 rabbitmqctl set_user_tags root administrator 
权限 说明
administrator 允许执行所有管理操作,包括用户管理、虚拟主机管理、策略管理等。
monitoring 允许查看所有管理信息,包括节点状态、通道状态、连接状态等
policymaker 允许定义和修改策略,包括队列策略、镜像策略等。
management 允许通过 Web 管理界面进行管理操作,包括查看和管理队列、交换机、绑定等。
none 只能执行基本操作,如发布、消费消息。

7、登录web管理界面

  利用刚刚创建好的root用户登录web页面

至此,完成所有安装操作

为了帮助更多像你一样的读者,我将持续在专栏中分享技术干货和实用技巧。如果你觉得这篇文章对你有帮助,可以考虑关注我的专栏,谢谢。

相关推荐
琥珀.2 小时前
mysql中json数组转列表查询
linux·运维·服务器
dawnsky.liu3 小时前
在 RHEL 中使用 goose 实现远程主机管理
linux·运维·ai
Linux运维技术栈4 小时前
CVE-2026-91403 高危漏洞修复:Rocky Linux 9 多版本 JDK 环境清理实操
java·linux·运维
slongzhang_6 小时前
linux 递归删除源码文件|递归删除目录下 *.js,但排除 *.min.js
linux·开发语言·javascript
叼烟扛炮6 小时前
Linux 学习笔记(三十三):线程互斥——互斥锁(Mutex)与死锁
linux·运维·服务器·笔记·学习·1024程序员节
无足鸟ICT6 小时前
【RHCA+】who命令(查看已登陆用户)
linux·运维·服务器
Escalating_xu7 小时前
【Linux 网络编程】应用层协议 HTTP(下):Header、连接管理与 C++ HTTP 服务器
linux·服务器·网络
GeW9 小时前
新质生产力路线图落地,Linux运维与数据库架构师的机会清单
linux
Brilliantwxx9 小时前
【Linux】 文件访问与路径解析:目录、文件名、dentry、路径缓冲与 dcache 全解析
linux·运维·服务器·开发语言·spring
father_122710 小时前
Greenplum 集群故障恢复与主备同步机制实战
linux·网络·greenplum