Ubuntu RabbitMQ版本如何选择与升级
导读:Ubuntu 下 RabbitMQ 版本选择与升级指南 一 版本选择要点 优先选择仍在维护的 Ubuntu LTS 版本:20.04(Focal)、22.04(Jammy)、24.04(Noble),并配套安装与之兼容的 Erlang/O...
Ubuntu 下 RabbitMQ 版本选择与升级指南
一 版本选择要点
- 优先选择仍在维护的 Ubuntu LTS 版本:20.04(Focal)、22.04(Jammy)、24.04(Noble),并配套安装与之兼容的 Erlang/OTP 与 RabbitMQ 版本,避免系统自带仓库的滞后版本。RabbitMQ 对 Erlang 有严格兼容矩阵,部署前务必核对。官方支持矩阵与安装指引见:rabbitmq.com/which-erlang 与 RabbitMQ 官方 APT 仓库说明。对于 Ubuntu 24.04,可直接采用 RabbitMQ 4.x 系列。
- 版本系列建议:新环境优先 4.x(功能与维护更优);若应用依赖 3.12/3.13 的特定行为或客户端 SDK,可继续选择 3.12/3.13 LTS 系列。注意 3.13.0+ 强制要求 Erlang 26.x;4.0.0+ 支持 Erlang 27.x。
- 安装方式建议:使用 RabbitMQ 官方 APT 仓库(同时添加 erlang 仓库),可自动解决依赖、便于升级与回滚;避免仅用系统自带旧版本。若无法使用 APT,可备选 DEB 包安装,但需自行处理依赖。
二 版本兼容速查表
| RabbitMQ 版本 | 所需 Erlang/OTP | 说明 |
|---|---|---|
| 4.0.0+ | 27.x | 新特性与性能改进,建议新项目采用 |
| 3.13.x | 26.x(3.13.0+ 强制) | 3.x 系列较新 LTS,兼容多数存量生态 |
| 3.12.x | 26.x | 3.x LTS,适合需要稳定性的场景 |
说明:上表为常见兼容关系,生产部署前请以官方“Which Erlang”页面为准,并结合实际依赖验证。
三 APT 安装与版本锁定(Ubuntu 20.04/22.04/24.04)
- 准备与导入密钥
- 安装工具:
sudo apt-get update & & sudo apt-get 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
- 安装工具:
- 添加官方仓库(以 Noble 为例,其他版本替换为 jammy/focal;Debian 替换为 debian 路径)
- 写入源列表:
sudo tee /etc/apt/sources.list.d/rabbitmq.list < < EOF ## Modern Erlang/OTP releases deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb1.rabbitmq.com/rabbitmq-erlang/ubuntu/noble noble main deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb2.rabbitmq.com/rabbitmq-erlang/ubuntu/noble noble main ## Latest RabbitMQ releases deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb1.rabbitmq.com/rabbitmq-server/ubuntu/noble noble main deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb2.rabbitmq.com/rabbitmq-server/ubuntu/noble noble main EOF
- 写入源列表:
- 安装与锁定版本
- 更新索引:
sudo apt-get update - 安装组件:
sudo apt-get install -y erlang-base erlang-asn1 erlang-crypto ...(可按需精简)与rabbitmq-server - 查看可用版本:
apt list -a rabbitmq-server - 安装指定版本(示例):
sudo apt-get install -y rabbitmq-server=3.13.7-1 - 锁定当前版本(防误升级):
echo "rabbitmq-server hold" | sudo dpkg --set-selections
- 更新索引:
- 启用管理插件与基础验证
- 启用插件:
sudo rabbitmq-plugins enable rabbitmq_management - 访问管理界面:浏览器打开 http://< 服务器IP> :15672(默认账号 guest/guest,仅本机可登录;生产请创建管理员并授权)
- 启用插件:
四 就地升级步骤(同一大版本内与跨小版本)
- 升级前
- 备份:持久化队列数据目录 /var/lib/rabbitmq/mnesia、配置文件 /etc/rabbitmq/rabbitmq.conf、插件与用户配置
- 检查兼容性:确认目标 RabbitMQ 与 Erlang/OTP 满足官方矩阵
- 维护窗口与通知:在业务低峰期执行,避免消息堆积与连接中断
- 集群场景:逐台滚动升级,保持多数节点存活,避免一次性全停
- 执行升级
- 取消锁定:
echo "rabbitmq-server install" | sudo dpkg --set-selections - 执行升级:
sudo apt-get update & & sudo apt-get install -y rabbitmq-server - 重启服务:
sudo systemctl restart rabbitmq-server - 验证:
sudo rabbitmqctl status、sudo rabbitmq-diagnostics status、管理界面检查队列与连接
- 取消锁定:
- 回滚
- 指定旧版本重装:
sudo apt-get install -y rabbitmq-server=< 旧版本号> - 恢复配置与数据目录后重启
- 指定旧版本重装:
- 跨大版本(如 3.13 → 4.x)
- 先核对 Erlang/OTP 是否满足 4.x(27.x) 要求;不满足则先升级 Erlang
- 建议在测试环境充分验证客户端兼容性、插件与策略配置后再行升级
- 集群升级保持同版本,避免混合大版本导致元数据/插件不一致
五 Docker 场景的版本选择与升级
- 镜像标签语义
- rabbitmq:management:指向“当前默认稳定大版本 + 管理插件”,未来可能随官方版本自动升级
- rabbitmq:4-management:明确锁定 4.x 系列,适合生产稳定与可预期升级节奏
- 推荐实践(示例)
- 使用标签:
image: rabbitmq:4-management - 端口:5672(AMQP)、15672(管理)
- 环境变量:设置
RABBITMQ_DEFAULT_USER/RABBITMQ_DEFAULT_PASS - 数据持久化:挂载 /var/lib/rabbitmq 与 /var/log/rabbitmq
- 资源与健康检查:适当设置
ulimits与healthcheck - 注意:4.x 起不推荐通过环境变量设置内存水印(如
RABBITMQ_VM_MEMORY_HIGH_WATERMARK),避免告警或报错
- 使用标签:
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu RabbitMQ版本如何选择与升级
本文地址: https://pptw.com/jishu/782655.html
