OpenEuler系统下RabbitMQ安装与基础配置教程
RabbitMQ是一款基于AMQP(高级消息队列协议)的开源消息中间件,广泛应用于分布式系统中的消息传递、异步通信等场景。本文将详细介绍在OpenEuler(欧拉)操作系统下,通过两种主流方式安装RabbitMQ,并完成基础配置与验证,适用于开发、测试及生产环境的基础部署需求。
一、前置准备
1.1 系统环境要求
-
操作系统:OpenEuler 22.03 LTS 及以上版本(本文基于OpenEuler 22.03 LTS验证)
-
内核版本:5.10.0 及以上
-
内存:至少2GB(生产环境建议4GB及以上)
-
网络:能访问互联网(用于下载依赖包和RabbitMQ安装包)
-
权限:需使用root用户或具备sudo权限的用户操作
1.2 依赖环境安装
RabbitMQ基于Erlang语言开发,因此必须先安装Erlang运行环境,且Erlang版本需与RabbitMQ版本兼容(兼容关系可参考RabbitMQ官方文档:https://www.rabbitmq.com/which-erlang.html)。本文选择安装Erlang 25.x版本(兼容RabbitMQ 3.10+版本)。
步骤1:更新系统软件包索引
sudo dnf update -y
步骤2:安装Erlang依赖包
sudo dnf install -y gcc gcc-c++ make openssl-devel ncurses-devel
步骤3:添加Erlang官方YUM源
创建Erlang源配置文件
sudo vim /etc/yum.repos.d/erlang.repo
在文件中添加以下内容:
erlang-solutions
name=Erlang Solutions
baseurl=https://packages.erlang-solutions.com/rpm/centos/releasever/releasever/releasever/basearch
enabled=1
gpgcheck=1
gpgkey=https://packages.erlang-solutions.com/rpm/erlang_solutions.asc
步骤4:安装Erlang 25.x
sudo dnf install -y erlang-25.3.2.8-1.el8
步骤5:验证Erlang安装成功
erl -version
若输出类似以下信息,说明Erlang安装成功:
Erlang (SMP,ASYNC_THREADS) (BEAM) emulator version 13.2.2.8
二、RabbitMQ安装(两种方式)
方式一:通过YUM源安装(推荐,适用于生产环境)
步骤1:添加RabbitMQ官方YUM源
创建RabbitMQ源配置文件
sudo vim /etc/yum.repos.d/rabbitmq.repo
添加以下内容(适配OpenEuler 22.03 LTS,对应CentOS 8兼容版本):
rabbitmq_rabbitmq-server
name=rabbitmq_rabbitmq-server
baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/8/$basearch
repo_gpgcheck=1
gpgcheck=1
enabled=1
gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
步骤2:导入RabbitMQ签名密钥(避免安装时GPG校验失败)
sudo rpm --import https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
sudo rpm --import https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
步骤3:安装RabbitMQ Server
sudo dnf install -y rabbitmq-server-3.12.10-1.el8
说明:3.12.10为当前稳定版本,可根据需求替换为其他兼容版本(需与Erlang版本匹配)。
方式二:通过源码包安装(适用于定制化需求)
步骤1:下载RabbitMQ源码包
步骤2:解压源码包到指定目录
sudo mkdir -p /usr/local/rabbitmq
sudo tar -xvf rabbitmq-server-generic-unix-3.12.10.tar.xz -C /usr/local/rabbitmq --strip-components=1
步骤3:配置环境变量
sudo vim /etc/profile
添加以下内容:
export RABBITMQ_HOME=/usr/local/rabbitmq
export PATH=PATH:PATH:PATH:RABBITMQ_HOME/sbin
生效环境变量:
source /etc/profile
三、RabbitMQ基础配置
3.1 启动RabbitMQ服务
方式一(YUM安装):使用systemd管理服务
启动RabbitMQ
sudo systemctl start rabbitmq-server
设置开机自启
sudo systemctl enable rabbitmq-server
查看服务状态
sudo systemctl status rabbitmq-server
若输出"active (running)",说明服务启动成功。
方式二(源码安装):直接启动
后台启动RabbitMQ
rabbitmq-server -detached
查看服务状态
rabbitmqctl status
3.2 启用RabbitMQ管理界面(推荐)
RabbitMQ提供了Web管理界面,可方便地查看队列、交换机、用户等信息,需手动启用:
启用管理插件
sudo rabbitmq-plugins enable rabbitmq_management
启用成功后,默认监听15672端口。
3.3 配置用户与权限(关键步骤)
RabbitMQ默认有一个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 "." "." ".*"
说明:-p / 表示虚拟主机(默认虚拟主机),".*" 分别表示配置权限、写权限、读权限。
步骤4:删除默认guest用户(增强安全性)
sudo rabbitmqctl delete_user guest
3.4 配置防火墙(开放必要端口)
OpenEuler默认启用firewalld防火墙,需开放RabbitMQ的核心端口:
-
5672:AMQP协议默认端口(客户端连接端口)
-
15672:管理界面端口
-
25672:RabbitMQ节点间通信端口(集群环境需开放)
开放5672端口
sudo firewall-cmd --add-port=5672/tcp --permanent
开放15672端口
sudo firewall-cmd --add-port=15672/tcp --permanent
重新加载防火墙规则
sudo firewall-cmd --reload
查看开放的端口
sudo firewall-cmd --list-ports
四、安装验证
4.1 访问Web管理界面
在本地浏览器中输入:http://[服务器IP]:15672
使用创建的admin用户登录,登录成功后即可看到RabbitMQ的管理界面,包括Overview(概览)、Queues(队列)、Exchanges(交换机)、Users(用户)等模块,说明Web管理界面配置正常。
4.2 命令行验证消息发送与接收
步骤1:创建一个测试队列
sudo rabbitmqctl declare_queue test_queue
步骤2:发送一条测试消息
sudo rabbitmqctl publish test_queue "" "Hello RabbitMQ on OpenEuler!"
步骤3:接收测试消息
sudo rabbitmqctl get_queue_message test_queue
若能成功接收到"Hello RabbitMQ on OpenEuler!"消息,说明RabbitMQ服务正常运行。
五、常见问题解决
5.1 安装时GPG校验失败
现象:执行dnf install时提示"GPG key retrieval failed: [Errno 14] curl#35 - "SSL connect error""
解决方法:重新导入RabbitMQ和Erlang的签名密钥,或临时关闭GPG校验(不推荐生产环境):
sudo dnf install -y rabbitmq-server --nogpgcheck
5.2 启动RabbitMQ服务失败,提示"Erlang version too old"
现象:systemctl status rabbitmq-server显示"Erlang version 23.x is too old, required minimum version is 25.x"
解决方法:卸载当前Erlang版本,重新安装与RabbitMQ兼容的Erlang版本(参考本文前置准备中的Erlang安装步骤)。
5.3 无法访问Web管理界面
排查步骤:
-
检查rabbitmq_management插件是否启用:sudo rabbitmq-plugins list
-
检查15672端口是否开放:sudo netstat -tulnp | grep 15672
-
检查防火墙规则是否正确:sudo firewall-cmd --list-ports
-
检查服务器IP是否可达(本地ping服务器IP)
六、总结
本文详细介绍了在OpenEuler系统下两种RabbitMQ的安装方式(YUM源安装和源码包安装),并完成了依赖环境配置、服务启动、权限管理、防火墙配置等关键步骤,最后通过Web界面和命令行验证了安装结果。通过本文的步骤,可快速完成RabbitMQ的基础部署,满足分布式系统中消息传递的基础需求。若需部署集群环境,可在此基础上参考RabbitMQ官方文档进行集群配置。
提示:生产环境中建议使用YUM源安装方式,便于后续版本更新和服务管理;同时需注意密码安全,定期更新用户密码,并关闭不必要的端口和服务,增强系统安全性。