当前位置: 首页 > news >正文

Java-202 RabbitMQ 生产安装与容器快速启动:Erlang 兼容、RPM 部署与常用命令

TL;DR

  • 场景:RHEL 系(CentOS/RockyLinux)用 RPM 做 RabbitMQ 生产部署,同时用 Docker Compose 快速学习。
  • 结论:关键风险在 Erlang/RabbitMQ 版本兼容与包来源一致性;其次是端口、插件、用户权限与安全基线。
  • 产出:给出可落地的安装路径、版本矩阵写法与高频报错速查卡,便于上线排障。

RabbitMQ 安装

服务安装(生产推荐)

首先我们需要确认的环境准备:

  1. 操作系统环境:

    • 支持 CentOS 7/8、RockyLinux 8/9 等 RHEL 系发行版
    • 建议使用最小化安装的系统,减少不必要的软件冲突
  2. Erlang 环境要求:

    • RabbitMQ 是基于 Erlang 虚拟机(BEAM)运行的消息中间件
    • 必须预先安装兼容版本的 Erlang 运行时
    • 建议版本不低于 Erlang 23.x
  3. 系统依赖包:

    • socat:用于集群间通信
    • logrotate:日志轮转管理
    • openssl:安全通信支持
    • 其他编译工具链(gcc, make等)

安装步骤说明:

  1. 安装 Erlang:

    • 可以通过 EPEL 仓库安装
    • 或从 Erlang Solutions 获取最新版本
    • 示例命令:yum install erlang
  2. 验证 Erlang:

    • 执行erl -version检查安装
    • 确保版本符合 RabbitMQ 要求
  3. 版本兼容性检查:

    • 必须参考官方兼容性文档
    • 访问 RabbitMQ Erlang 兼容性指南
    • 例如 RabbitMQ 3.9.x 需要 Erlang 23.2+

注意事项:

  • 生产环境建议使用相同次要版本的 Erlang
  • 避免混用不同仓库的软件包
  • 升级时需先检查兼容性矩阵首先我们需要确认的环境准备:
  1. 操作系统环境:

    • 支持 CentOS 7/8、RockyLinux 8/9 等 RHEL 系发行版
    • 建议使用最小化安装的系统,减少不必要的软件冲突
  2. Erlang 环境要求:

    • RabbitMQ 是基于 Erlang 虚拟机(BEAM)运行的消息中间件
    • 必须预先安装兼容版本的 Erlang 运行时
    • 建议版本不低于 Erlang 23.x
  3. 系统依赖包:

    • socat:用于集群间通信
    • logrotate:日志轮转管理
    • openssl:安全通信支持
    • 其他编译工具链(gcc, make等)

安装步骤说明:

  1. 安装 Erlang:

    • 可以通过 EPEL 仓库安装
    • 或从 Erlang Solutions 获取最新版本
    • 示例命令:yum install erlang
  2. 验证 Erlang:

    • 执行erl -version检查安装
    • 确保版本符合 RabbitMQ 要求
  3. 版本兼容性检查:

    • 必须参考官方兼容性文档
    • 访问 RabbitMQ Erlang 兼容性指南
    • 例如 RabbitMQ 3.9.x 需要 Erlang 23.2+

注意事项:

  • 生产环境建议使用相同次要版本的 Erlang
  • 避免混用不同仓库的软件包
  • 升级时需先检查兼容性矩阵

socat

我们在服务器上安装 socat:

yuminstallsocat -y

Erlang

然后安装 Erlang:

https://github.com/rabbitmq/erlang-rpm/releases/download/v23.0.2/erlang-23.0.2-1.el7.x86_64.rpm

将文件上传到服务器后,我们执行安装:

rpm-ivh erlang-23.0.2-1.el7.x86_64.rpm

RabbitMQ

接着我们下载MQ:

https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.4/rabbitmq-server-3.8.4-1.el7.noarch.rpm

上传到服务器之后,我们安装:

rpm-ivh rabbitmq-server-3.8.4-1.el7.noarch.rpm

启动插件

rabbitmq-pluginsenablerabbitmq_management

启动RabbitMQ服务的几种方式

1. 使用systemctl启动(推荐用于生产环境)
systemctl start rabbitmq-server
  • 这是最标准的启动方式,适用于使用systemd的Linux系统
  • 会自动处理服务依赖关系和日志记录
  • 示例场景:在Ubuntu 18.04+/CentOS 7+等现代Linux发行版中使用
2. 直接运行可执行文件(适合开发环境)
rabbitmq-server
  • 会在前台运行,方便查看实时日志
  • 按Ctrl+C可停止服务
  • 典型使用场景:本地开发测试时快速启动
3. 后台守护进程模式
rabbitmq-server -detached
  • 添加-detached参数使服务在后台运行
  • 不会占用当前终端
  • 停止服务需要使用rabbitmqctl stop
  • 适用情况:需要后台运行但又不想配置systemd服务时

其他相关命令

# 查看服务状态systemctl status rabbitmq-server# 设置开机自启systemctlenablerabbitmq-server# 停止服务systemctl stop rabbitmq-server

注意:不同Linux发行版的包管理命令可能略有差异,例如在RHEL系使用yum,Debian系使用apt安装时,服务名称保持一致。

添加用户

rabbitmqctl add_user root123456

添加权限

rabbitmqctl set_permissions root -p /".*"".*"".*"

设置用户标签(RabbitMQ用户权限管理)

rabbitmqctl set_user_tags root administrator

详细说明:

  1. 此命令用于为RabbitMQ用户设置标签,这里是给用户root添加administrator管理员标签

  2. 标签类型说明:

    • administrator:管理员权限,拥有所有操作权限
    • monitoring:监控权限,可以查看所有信息但不能修改
    • policymaker:策略制定权限,可以管理虚拟主机策略
    • management:基本管理权限,可以使用管理插件
  3. 典型应用场景:

    • 新用户创建后需要分配管理权限
    • 需要调整现有用户的权限级别
    • 在多租户环境中管理不同用户的访问权限
  4. 相关命令:

    • 查看用户标签:rabbitmqctl list_users
    • 删除用户标签:rabbitmqctl clear_user_tags username

注意事项:

  • 执行此命令需要RabbitMQ管理员权限
  • 修改会立即生效,无需重启服务
  • 建议使用专用管理账号而非root账号进行日常管理### 设置用户标签(RabbitMQ用户权限管理)
rabbitmqctl set_user_tags root administrator

详细说明:

  1. 此命令用于为RabbitMQ用户设置标签,这里是给用户root添加administrator管理员标签

  2. 标签类型说明:

    • administrator:管理员权限,拥有所有操作权限
    • monitoring:监控权限,可以查看所有信息但不能修改
    • policymaker:策略制定权限,可以管理虚拟主机策略
    • management:基本管理权限,可以使用管理插件
  3. 典型应用场景:

    • 新用户创建后需要分配管理权限
    • 需要调整现有用户的权限级别
    • 在多租户环境中管理不同用户的访问权限
  4. 相关命令:

    • 查看用户标签:rabbitmqctl list_users
    • 删除用户标签:rabbitmqctl clear_user_tags username

注意事项:

  • 执行此命令需要RabbitMQ管理员权限
  • 修改会立即生效,无需重启服务
  • 建议使用专用管理账号而非root账号进行日常管理

标签内容有:

容器安装(学习推荐)

compose

我们可以通过容器来快速启动服务,方便我们学习使用:

services:rabbitmq:image:rabbitmq:3.8.4-managementcontainer_name:rabbitmq-3.8restart:unless-stoppedports:-"5672:5672"# AMQP-"15672:15672"# 管理界面environment:RABBITMQ_DEFAULT_USER:adminRABBITMQ_DEFAULT_PASS:secretvolumes:-rabbitmq_data:/var/lib/rabbitmqvolumes:rabbitmq_data:

内容如下所示:

启动服务

我们启动:

docker compose up -d

等待结束:

访问服务

我们访问 15672 端口,填写刚才文件中的账号密码:

RabbitMQ 管理命令大全

服务启动与停止

前台启动

在前台启动 Erlang VM 和 RabbitMQ 服务,适合调试时使用:

rabbitmq-server

后台启动

以守护进程方式在后台启动服务,适合生产环境:

rabbitmq-server -detached

停止服务

安全停止 RabbitMQ 和 Erlang VM:

rabbitmqctl stop

应用管理

应用控制

在 Erlang VM 已运行的情况下控制 RabbitMQ 应用:

# 启动应用rabbitmqctl start_app# 停止应用(不停止Erlang VM)rabbitmqctl stop_app

节点状态检查

查看节点运行状态和统计信息:

rabbitmqctl status

队列管理

查看队列

列出所有队列及其消息数量(可添加name, messages等参数显示更多信息):

rabbitmqctl list_queues

虚拟主机管理

查看所有虚拟主机(vhost):

rabbitmqctl list_vhosts

插件管理

插件操作

# 列出所有可用插件(包括已启用/未启用的)rabbitmq-plugins list# 启用指定插件(如rabbitmq_management)rabbitmq-pluginsenable<plugin-name># 停用指定插件rabbitmq-plugins disable<plugin-name>

用户管理

用户操作

# 添加新用户(用户名和密码)rabbitmqctl add_user username password# 列出所有用户及其标签rabbitmqctl list_users# 删除用户rabbitmqctl delete_user username# 清除用户在特定vhost的权限rabbitmqctl clear_permissions -p vhostpath username

高级用法示例

查看队列详情(带更多参数)

rabbitmqctl list_queues name messages messages_ready messages_unacknowledged

创建虚拟主机并设置权限

# 创建vhostrabbitmqctl add_vhost /my_vhost# 设置用户权限rabbitmqctl set_permissions -p /my_vhost username".*"".*"".*"

查看连接信息

rabbitmqctl list_connections

查看信道信息

rabbitmqctl list_channels

错误速查

症状根因定位修复
rpm -ivh rabbitmq-server-...rpm报依赖缺失socat/openssl 等依赖未装或版本不匹配rpm -qpR 包名.rpm,或看报错缺什么库先装 socat、openssl 等依赖;统一仓库来源,避免混装。
下载 3.8.5,却安装命令写成 3.8.4文档版本号不一致导致误操作对比下载链接与rpm -ivh文件名统一为同一版本号;建议把“下载链接/文件名/安装命令”三者对齐。
rabbitmq-server启动失败,提示 Erlang 版本不兼容Erlang/OTP 与 RabbitMQ 版本区间不匹配erl -version;RabbitMQ 启动日志按官方兼容矩阵选择 Erlang 版本;生产固定“可复现组合”。
systemctl start rabbitmq-server失败service unit/权限/数据目录问题或节点没起来systemctl status+journalctl -u rabbitmq-server根据日志修复目录权限、磁盘空间、端口占用;必要时清理残留状态后重启。
rabbitmq-plugins enable rabbitmq_management失败节点未运行、插件目录不可写、版本不匹配rabbitmqctl status、插件命令输出先确保rabbitmq-server正常启动;修复权限;核对包版本。
访问 15672 失败(浏览器打不开)端口未监听/防火墙未放行/管理插件未启用ss -lntp|grep 15672;插件列表添加用户后登录管理台失败
用户权限/标签未设置或 vhost 权限缺失rabbitmqctl list_userslist_permissions -p /set_permissionsset_user_tags配套执行;确保对目标 vhost 授权。
set_permissions成功但业务仍拒绝使用了非/vhost 或应用连接串 vhost 不一致管理台查看 vhost;应用连接参数为实际 vhost 设置权限;统一应用侧 vhost 配置。
Docker Compose 启动后数据丢失未挂载卷或卷名变化docker volume ls;容器挂载信息保持volumes: rabbitmq_data:/var/lib/rabbitmq;不要频繁改卷名。
Compose 启动报权限/写入失败宿主机目录/卷权限与容器用户不匹配docker logs改用命名卷或修复宿主机目录权限;避免直接挂载无权限路径。
默认账号/弱口令带来安全风险admin/secret、root/123456 属于可猜测凭据配置与命令段落可直接识别学习环境可保留但必须标注“仅限本地/内网”;生产改强口令并限制 15672 暴露面。

其他系列

🚀 AI篇持续更新中(长期更新)

AI炼丹日志-29 - 字节跳动 DeerFlow 深度研究框斜体样式架 私有部署 测试上手 架构研究,持续打造实用AI工具指南!
AI研究-132 Java 生态前沿 2025:Spring、Quarkus、GraalVM、CRaC 与云原生落地
🔗 AI模块直达链接

💻 Java篇持续更新中(长期更新)

Java-196 消息队列选型:RabbitMQ vs RocketMQ vs Kafka
MyBatis 已完结,Spring 已完结,Nginx已完结,Tomcat已完结,分布式服务已完结,Dubbo已完结,MySQL已完结,MongoDB已完结,Neo4j已完结,FastDFS 已完结,OSS已完结,GuavaCache已完结,EVCache已完结,RabbitMQ正在更新… 深入浅出助你打牢基础!
🔗 Java模块直达链接

📊 大数据板块已完成多项干货更新(300篇):

包括 Hadoop、Hive、Kafka、Flink、ClickHouse、Elasticsearch 等二十余项核心组件,覆盖离线+实时数仓全栈!
大数据-278 Spark MLib - 基础介绍 机器学习算法 梯度提升树 GBDT案例 详解
🔗 大数据模块直达链接

http://www.jsqmd.com/news/110649/

相关文章:

  • Mermaid.js终极指南:5分钟掌握文本化数据可视化魔法
  • 25 万亿美元超级风口下,中国智造如何执掌机器人时代
  • AI大模型训练全攻略:从零开始到实战应用,超详细教程,建议收藏学习!
  • 使用 Go 实现 SSE 流式推送 + 打字机效果(模拟 Coze Chat)
  • 地方2000坐标系的dwg如何导入Cesium
  • 26.IDEA 专业版中创建简单的 Web 项目并打包部署到本地Tomcat 9
  • 大模型智能体架构终极图谱!一口气讲透17种核心设计,从ReAct到AutoGen,收藏这一篇就够了
  • Realistic Vision V2.0 终极AI图像生成完整指南
  • 紧急通知:MCP PL-600 Agent未及时部署将影响系统监控!速看部署步骤
  • Agent如何预判断货危机?深入拆解库存预警算法背后的3个数据逻辑
  • 【自动驾驶协同控制新范式】:基于多 Agent 融合的实时决策优化方案
  • Unity内置着色器完整使用指南:从入门到精通
  • 【金融 AI Agent 安全加固】:6大验证机制详解与落地实践
  • PFC循环加卸载实战:单轴双轴不同姿势解锁
  • Kotaemon在智慧城市公共服务中的角色
  • springboot海滨体育馆管理系统的设计与实现(11515)
  • Kotaemon组织架构调整建议
  • 告别显示器控制烦恼:MonitorControl让你的Mac外接显示器更智能
  • 2025 年 12 月哈尔滨静音铝包木窗品牌权威推荐榜:匠心工艺与极致隔音性能深度解析 - 品牌企业推荐师(官方)
  • 【RL】从公式推导到电机控制:深入浅出理解 Policy Gradient 与 Sim-to-Real
  • Solidity入门(11)-智能合约设计模式2
  • 云边 Agent 延迟优化全攻略(99%工程师忽略的底层机制曝光)
  • 2025年口碑不错的游戏账号交易专业公司推荐:售后完善的游戏账号交易企业有哪些? - mypinpai
  • 2025 书店 + 健身房专属!全自动咖啡机靠谱厂家合集,小空间也适配 - 品牌2026
  • Qt之构建方式
  • 2025年度知名挡水板厂家TOP5推荐:挡水板服务商家、挡水板推荐制造商有哪些? - 工业品牌热点
  • 2000-2024各省铁路里程、公路里程、交通网密度数据
  • 2025年陶瓷纤维板定制厂家权威推荐榜单:陶瓷纤维毯/工业电炉陶瓷纤维/高炉陶瓷纤维源头厂家精选 - 品牌推荐官
  • Solidity入门(10)-智能合约设计模式1
  • 【物流运输Agent路线优化】:揭秘智能路径调整背后的算法黑科技