Rocky8 部署单机RabbitMQ

一、RabbitMQ 安装

RabbitMQ 依赖 Erlang 环境,需按顺序完成依赖安装与服务部署,均为最新版本。

1. 安装 Erlang 环境

# 配置 Erlang YUM 源
curl -fsSL https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | bash
# 安装并验证
dnf install -y erlang
erl -version  # 输出版本即成功

2. 安装 RabbitMQ 服务

# 配置 RabbitMQ YUM 源
curl -fsSL https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | bash
# 安装并启动服务
dnf install -y rabbitmq-server
systemctl start rabbitmq-server  # 启动服务
systemctl enable rabbitmq-server  # 开机自启
systemctl status rabbitmq-server  # 验证状态为 active (running)

3. 启用管理界面(可选)

rabbitmq-plugins enable rabbitmq_management  # 启用插件
systemctl restart rabbitmq-server  # 重启生效

4. 开放核心端口(无防火墙可忽略)

# 开放 AMQP 端口(5672)和管理界面端口(15672)
firewall-cmd --permanent --add-port=5672/tcp
firewall-cmd --permanent --add-port=15672/tcp
firewall-cmd --reload  # 刷新规则
firewall-cmd --list-ports  # 验证端口开放

二、用户管理核心操作

包含用户创建、密码修改、权限查询三类高频操作,默认 guest 用户仅支持本地访问,需创建自定义管理员用户。

1. 创建用户(以 shunt 为例)

# 格式:rabbitmqctl add_user 用户名 密码
rabbitmqctl add_user shunt Shunt@123  # 密码建议含字母+数字+特殊符号

2. 修改用户密码(以 admin 为例)

# 格式:rabbitmqctl change_password 用户名 新密码
rabbitmqctl change_password admin Admin@654  # 无需原密码,直接强制修改

3. 查看用户信息与标签

rabbitmqctl list_users  # 查看所有用户及权限标签
# 输出示例:user    tags,administrator 为超级管理员标签

三、用户权限配置与查询

权限分为「标签权限」(管理范围)和「资源权限」(操作范围),需同时配置确保权限完整。

1. 配置用户标签(授予监控权限)

# 格式:rabbitmqctl set_user_tags 用户名 标签
rabbitmqctl set_user_tags shunt monitoring  # 超级管理员标签,拥有最高权限

常见标签:administrator(超级管理员)、management(普通管理)、monitoring(监控)。

2. 配置资源权限

# 格式:rabbitmqctl set_permissions -p 虚拟主机 用户名 配置权限 写权限 读权限
rabbitmqctl set_permissions -p / shunt ".*" ".*" ".*"  # 授予默认虚拟主机全权限

3. 查询用户权限

# 查单个用户(精准)
rabbitmqctl list_user_permissions shunt
# 查所有用户(批量)
rabbitmqctl list_permissions

权限解读:".*" 表示全权限,分别对应配置(创建/删除资源)、写(发消息)、读(收消息)权限。

四、验证安装成功

1. 访问管理界面

打开浏览器,输入 http://服务器IP:15672(若修改端口则用自定义端口),使用创建的 admin 用户(或 guest 本地访问)登录,能正常进入界面即说明管理插件和端口配置生效。

2. 测试 AMQP 连接(可选)

使用 Python 客户端测试(需先安装 pika 库):

pip3 install pika

创建测试脚本 test_rabbitmq.py

import pika

# 连接 RabbitMQ(替换为服务器IP、端口、用户名、密码)
connection = pika.BlockingConnection(
    pika.ConnectionParameters(
        host='服务器IP',
        port=5672,  # 或自定义端口
        credentials=pika.PlainCredentials('admin', 'Admin@654')
    )
)
channel = connection.channel()
# 创建队列
channel.queue_declare(queue='test_queue')
# 发送消息
channel.basic_publish(exchange='', routing_key='test_queue', body='Hello RabbitMQ!')
print("消息发送成功")
connection.close()

执行脚本,无报错且在管理界面的「Queues」中能看到 test_queue 及消息数,说明 AMQP 端口正常。
如下图:
image
image

posted @ 2025-12-04 15:17  小白不怕黑  阅读(1)  评论(0)    收藏  举报