跳转到内容

RabbitMQ在Linux系统上的安装和部署

课程介绍

接下来我们学习RabbitMQ的安装部署。RabbitMQ是知名的消息队列系统,支持多种消息协议,用于异步处理、流量削峰等场景。Rocky Linux 9需要配置dnf仓库来安装RabbitMQ。安装后用systemctl start rabbitmq-server启动服务,默认监听5672端口。RabbitMQ依赖Erlang编程语言,安装时会自动安装。可以通过Web管理界面或命令行管理消息队列,是分布式系统中常用的消息中间件。

1. RabbitMQ简介

1. 1 什么是RabbitMQ

RabbitMQ是一款知名的开源消息队列系统,可以为企业提供消息的发布订阅、点对点传输等消息服务。

1. 2 RabbitMQ的主要功能

  • 消息的发布和订阅
  • 点对点消息传输
  • 消息路由和过滤
  • 消息持久化
  • 高可用性和容错机制
  • 负载均衡

1. 3 RabbitMQ的应用场景

  • 异步处理:将耗时操作异步化,提高系统响应速度
  • 应用解耦:降低系统间的直接依赖关系
  • 流量削峰:平滑处理高并发请求
  • 日志处理:收集和分发系统日志
  • 分布式事务:确保分布式系统中的数据一致性

2. 安装前准备

2. 1 系统环境

  • 操作系统:Rocky Linux 9
  • 权限要求:需要root权限

2. 2 安装方式

  • 使用dnf命令安装
  • 需要手动配置dnf仓库(系统默认仓库版本较老)
  • 依赖Erlang编程语言环境

3. 配置RabbitMQ仓库

3. 1 导入仓库密钥

bash
# 导入Erlang签名密钥
rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc

# 导入RabbitMQ签名密钥
rpm --import https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey

# 导入EPEL仓库密钥
rpm --import https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7

3. 2 创建RabbitMQ仓库配置文件

3. 2.1 进入仓库配置目录

bash
cd /etc/dnf.repos.d/

3. 2.2 创建rabbitmq.repo文件

bash
vi rabbitmq.repo

在文件中添加以下内容:

ini
[rabbitmq-erlang]
name=rabbitmq-erlang
baseurl=https://packagecloud.io/rabbitmq/erlang/el/9/$basearch
gpgcheck=1
enabled=1
gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

[rabbitmq-server]
name=rabbitmq-server
baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/9/$basearch
gpgcheck=1
enabled=1
gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

4. 安装RabbitMQ

4. 1 安装Erlang和RabbitMQ

bash
# 安装Erlang和RabbitMQ Server
dnf install -y erlang rabbitmq-server

说明:安装过程会自动下载并安装Erlang、RabbitMQ及其依赖程序


5. 管理RabbitMQ服务

5. 1 查看RabbitMQ状态

bash
systemctl status rabbitmq-server

5. 2 启动RabbitMQ服务

bash
systemctl start rabbitmq-server

5. 3 设置RabbitMQ开机自启

bash
systemctl enable rabbitmq-server

5. 4 停止RabbitMQ服务

bash
systemctl stop rabbitmq-server

5. 5 重启RabbitMQ服务

bash
systemctl restart rabbitmq-server

6. 防火墙配置

6. 1 方式一:关闭防火墙(仅适用于测试环境)

bash
# 停止防火墙服务
systemctl stop firewalld

# 禁用防火墙开机自启
systemctl disable firewalld

6. 2 方式二:放行RabbitMQ端口(适用于生产环境)

bash
# 放行RabbitMQ主要端口
firewall-cmd --permanent --add-port=5672/tcp
firewall-cmd --permanent --add-port=15672/tcp
firewall-cmd --permanent --add-port=25672/tcp

# 重新加载防火墙规则
firewall-cmd --reload

说明

  • 5672:RabbitMQ消息通信端口
  • 15672:RabbitMQ Web管理控制台端口
  • 25672:RabbitMQ集群通信端口

7. 启用RabbitMQ Web管理控制台

7. 1 启动Web管理插件

bash
rabbitmq-plugins enable rabbitmq_management

7. 2 创建管理员用户

bash
# 创建用户名为admin,密码为yege666!的用户
rabbitmqctl add_user admin "yege666!"

7. 3 配置用户权限

bash
# 授予admin用户所有资源的所有权限
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

7. 4 设置用户角色

bash
# 将admin用户设置为管理员角色
rabbitmqctl set_user_tags admin administrator

8. 验证RabbitMQ安装

8. 1 通过Web管理控制台访问

在浏览器中访问RabbitMQ Web管理控制台:

http://[服务器IP]:15672

使用创建的admin用户和密码登录(用户名:admin,密码:yege666!)

如果看到RabbitMQ管理控制台页面,表示安装成功

8. 2 验证RabbitMQ状态

bash
# 查看RabbitMQ服务状态
rabbitmqctl status

预期输出:显示RabbitMQ的详细状态信息


9. 常见问题与解决方案

问题现象可能原因解决方案
dnf安装RabbitMQ失败仓库配置错误检查rabbitmq.repo文件内容是否正确,重新导入密钥
RabbitMQ无法启动端口被占用或配置错误使用lsof -i:5672检查端口占用,查看错误日志/var/log/rabbitmq/rabbit@[主机名].log
浏览器无法访问管理控制台防火墙限制或Web插件未启用配置防火墙规则或重新启用管理插件
无法登录管理控制台用户名或密码错误重新创建用户并配置权限

课程总结

这节课我们学了RabbitMQ的安装和部署。

安装步骤:

  1. 安装Erlang依赖(RabbitMQ用Erlang编写)
  2. 配置RabbitMQ仓库
  3. dnf install rabbitmq-server - 安装RabbitMQ
  4. systemctl start rabbitmq-server - 启动服务
  5. systemctl enable rabbitmq-server - 开机自启

管理命令: rabbitmq-plugins enable rabbitmq_management - 启用管理插件 rabbitmqctl add_user 用户 密码 - 创建用户 rabbitmqctl set_user_tags 用户 administrator - 设置管理员权限

Web管理界面:

RabbitMQ是消息队列,支持多种消息协议,常用端口: 5672(客户端),15672(Web),25672(Erlang)

课后练习

  1. 基础练习:在Linux系统上成功安装RabbitMQ
  2. 进阶练习
    • 配置RabbitMQ开机自启
    • 创建不同权限的用户
    • 测试消息的发布和订阅功能
  3. 挑战练习:配置RabbitMQ集群环境

评论区

专业的Linux技术学习平台,从入门到精通的完整学习路径