OpenEuler系统下RabbitMQ安装与基础配置教程

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源码包

wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.12.10/rabbitmq-server-generic-unix-3.12.10.tar.xz

步骤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源安装方式,便于后续版本更新和服务管理;同时需注意密码安全,定期更新用户密码,并关闭不必要的端口和服务,增强系统安全性。

相关推荐
工控小楠2 小时前
EtherNET IP转Profinet协议网关在智能仓储系统中的应用
服务器·网络·tcp/ip
gaize12133 小时前
如何编写一个简单的服务器应用程序?
服务器·云计算
studytosky3 小时前
Linux系统编程:深度解析 Linux 进程,从底层架构到内存模型
linux·运维·服务器·开发语言·架构·vim
Stella25213 小时前
实习日志|知识总结
linux·服务器·软件测试·数据库
weixin_462446233 小时前
【原创实践】使用 shell 脚本批量创建 Linux 用户并生成随机密码
linux·服务器·前端
海奥华23 小时前
进程调度算法 笔记总结
linux·运维·服务器·笔记·学习
茉莉玫瑰花茶4 小时前
ProtoBuf - 3
服务器·c++·protobuf
KingRumn5 小时前
Linux进程间通信之消息队列(POSIX)
linux·服务器
laoliu19965 小时前
Odoo 18企业版源码 包含 部署教程
运维·服务器