RabbitMQ消息队列配置:零基础安装到收发验证

RabbitMQ 是一套基于 AMQP 协议的消息队列服务,常用于系统解耦、异步任务和流量削峰。
这篇文章面向零基础用户,在 Linux 服务器上从安装到收发消息完整走一遍 RabbitMQ 消息队列配置,并给出每一步的验证方法和常见报错处理。

环境准备与安装前确认

以下步骤以 Ubuntu 22.04 和 CentOS 7 为例,其他发行版包管理器不同,思路一致。

RabbitMQ 依赖 Erlang 运行环境,安装前先确认系统架构和版本:

uname -m
cat /etc/os-release

如果使用 apt 系统,先更新软件源,再安装 RabbitMQ 官方仓库提供的版本,避免直接用系统自带的老版本:

sudo apt update
sudo apt install -y curl gnupg apt-transport-https
curl -1sLf "https://keys.openpgp.org/vks/v1/by-fingerprint/0A9AF2115F4687BD29803A206B73A36E6026DFCA" | sudo gpg --dearmor | sudo tee /usr/share/keyrings/com.rabbitmq.team.gpg > /dev/null

CentOS 系统可以用 yum 安装 Erlang 和 RabbitMQ,具体仓库地址以官方文档为准。
安装完成后检查版本:

rabbitmqctl version

能输出版本号说明服务端已就绪。

启动服务与开启管理后台

安装后 RabbitMQ 通常会自动启动,先确认服务状态:

sudo systemctl status rabbitmq-server

如果未启动,执行:

sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server

默认的 guest 用户只能在 localhost 登录,远程管理需要新建用户并授权。
开启 Web 管理插件:

sudo rabbitmq-plugins enable rabbitmq_management

然后创建管理员账号并设置权限:

sudo rabbitmqctl add_user admin '你的强密码'
sudo rabbitmqctl set_user_tags admin administrator
sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

访问 http://服务器IP:15672,用刚创建的账号登录,能看到管理面板即表示 RabbitMQ 消息队列配置的基础部分完成。

用 Python 验证消息收发

服务端能登录不代表业务可用,建议用官方推荐的 pika 库做一次真实收发测试。

安装客户端库:

pip install pika

发送端脚本 send.py:

import pika

credentials = pika.PlainCredentials('admin', '你的强密码')
connection = pika.BlockingConnection(pika.ConnectionParameters('127.0.0.1', 5672, '/', credentials))
channel = connection.channel()
channel.queue_declare(queue='hello')
channel.basic_publish(exchange='', routing_key='hello', body='hello rabbitmq')
print("消息已发送")
connection.close()

接收端脚本 receive.py:

import pika

credentials = pika.PlainCredentials('admin', '你的强密码')
connection = pika.BlockingConnection(pika.ConnectionParameters('127.0.0.1', 5672, '/', credentials))
channel = connection.channel()
channel.queue_declare(queue='hello')

method, properties, body = channel.basic_get(queue='hello', auto_ack=True)
print("收到:", body)
connection.close()

先运行 send.py,再运行 receive.py,能打印出 收到: b'hello rabbitmq' 说明队列读写正常。
如果要在 Web 面板里看到队列,可以先在 Queues 页面确认 hello 队列已创建。

常见报错与避坑要点

连接被拒绝(Connection refused):先确认 5672 和 15672 端口是否监听:

ss -tlnp | grep -E '5672|15672'

如果服务在运行但端口不通,检查防火墙或云服务器安全组是否放行。

用户无法登录管理后台:确认用户标签包含 administrator,权限用 rabbitmqctl list_permissions -p / 查看。
权限字符串 ".*" ".*" ".*" 分别对应配置、写、读权限,缺一项都可能导致操作失败。

Erlang cookie 不一致:
多节点或容器场景下,/var/lib/rabbitmq/.erlang.cookie 不一致会导致节点无法通信,
需要保证各节点该文件内容相同且权限为 400。

内存告警导致阻塞:RabbitMQ 默认在内存使用超过阈值时阻塞生产者。
低配服务器可以适当调高 vm_memory_high_watermark,但不要设置过高,否则可能触发 OOM。

不要长期使用 guest 账号对外:guest 默认仅限本机,强行放开存在安全风险,生产环境应使用独立账号和最小权限。

配置生效后的检查清单

完成 RabbitMQ 消息队列配置后,建议按下面几项复查:

  • rabbitmqctl status 输出无 error 级别异常
  • Web 管理后台能登录,Overview 页面显示节点健康
  • 自定义用户权限正确,guest 未对公网开放
  • 5672、15672 端口按需放行,未暴露到不必要的网络
  • 用 send.py 和 receive.py 能完成一次完整收发
  • 服务设置为开机自启,重启后队列和用户仍然存在

如果后续要接入生产业务,还需要考虑持久化、镜像队列或 Quorum 队列、监控告警等配置。
本文的命令和脚本只覆盖最小可用验证,请根据实际业务量调整。

分享到:
上一篇
Zabbix监控搭建教程:从零安装到主机监控完整步骤
下一篇
RocketMQ部署教程:Linux单机环境从零搭建与验证
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意