Ubuntu 上选择 RabbitMQ 版本的核心原则
- 以操作系统版本为底座:优先在 Ubuntu 20.04/22.04/24.04 LTS 上部署受支持的 RabbitMQ 版本,老旧系统(如 14.04/16.04)不建议用于生产。
- 以 Erlang/OTP 为约束:RabbitMQ 对 Erlang/OTP 有严格兼容矩阵,必须先确定可用的 Erlang 版本,再选择 RabbitMQ 版本,避免“装得上、起不来”。
- 以部署方式为边界:裸机/VM 走 APT 官方仓库;容器化走 Docker 镜像标签(如 3.x 与 4.x 的区分)。
- 以稳定性为优先:生产环境建议选择当前 稳定大版本的最新小版本,并尽量使用官方仓库或可信镜像源。
版本兼容性与推荐矩阵
- 下表给出 Ubuntu LTS 与 RabbitMQ 大版本的主流、可支持组合(实际仍需以官方兼容表为准,安装前请核验):
| Ubuntu 版本 |
建议 RabbitMQ 大版本 |
建议 Erlang/OTP 范围 |
说明 |
| 20.04 Focal |
3.12.x 或 3.13.x |
26.x(3.12+),26.x/27.x(3.13+) |
3.x 生态成熟;若需新特性再评估 4.x |
| 22.04 Jammy |
3.13.x 或 4.x |
26.x/27.x |
4.x 可用,建议锁定 4.x 系列 |
| 24.04 Noble |
4.x |
27.x |
4.x 与系统库更匹配,优先 4.x |
- 版本要点:
- RabbitMQ 4.0.0+ 支持 Erlang 27.x;3.12.0+ 支持 Erlang 26.x;3.13.0+ 强制要求 Erlang 26.x。
- 若已有 Erlang 23.x/24.x,通常对应 RabbitMQ 3.9.x 系列(如 Ubuntu 20.04 上常见组合)。
- 官方兼容表:https://www.rabbitmq.com/which-erlang.html(安装前务必核对)。
按场景给出选择建议
- 新项目(Ubuntu 22.04/24.04):优先 RabbitMQ 4.x + Erlang 27.x,获得更长维护周期与新特性;容器化建议固定标签如 rabbitmq:4-management。
- 存量项目(Ubuntu 20.04,已有 Erlang 23.x):优先 RabbitMQ 3.9.x,避免跨大版本带来的配置与插件差异;必要时再评估升级路径。
- 容器化部署:
- 追求稳定与可回滚:使用 rabbitmq:4-management(锁定 4.x 系列)。
- 追求“始终最新稳定版”:使用 rabbitmq:management(可能随官方升级到 5.x,存在不预期变更风险)。
- 注意:4.x 起不推荐通过环境变量设置内存水线(如 RABBITMQ_VM_MEMORY_HIGH_WATERMARK),避免告警/报错。
- 云上或受限网络:优先官方 APT 仓库或内网镜像,避免依赖系统自带旧版仓库。
快速落地步骤
- APT 方式(裸机/VM):
- 导入官方密钥与仓库(按 Ubuntu 代号 noble/jammy/focal 配置)。
- 安装匹配版本的 Erlang/OTP,再安装 rabbitmq-server。
- 如需指定版本:apt-cache madison rabbitmq-server 查看可用版本,然后 apt-get install rabbitmq-server=3.13.x-1。
- 启用管理插件:rabbitmq-plugins enable rabbitmq_management;访问 15672 管理界面。
- Docker 方式:
- 稳定锁定:image: rabbitmq:4-management
- 最新稳定:image: rabbitmq:management
- 常用环境变量:RABBITMQ_DEFAULT_USER / RABBITMQ_DEFAULT_PASS;数据卷映射 /var/lib/rabbitmq 与 /var/log/rabbitmq。
- 安全与连通:
- 开放端口:5672(AMQP)、15672(管理);云安全组/本机防火墙需放行。
- 远程登录:默认 guest/guest 仅限本机,需创建管理员用户并赋权。
升级与风险控制
- 升级顺序:先升级 Erlang/OTP 至目标大版本要求,再升级 RabbitMQ;跨大版本(如 3.x → 4.x)务必先在测试环境验证插件、策略、客户端兼容性。
- 回滚预案:保留上一版本的安装包/镜像;使用 APT 时可通过指定版本回退;容器化通过镜像标签回滚。
- 变更窗口:避开业务高峰;升级前备份 /var/lib/rabbitmq 与配置;升级后在低峰期观察 队列/连接/内存/磁盘 指标。
- 参考文档:安装与版本矩阵以官方说明为准(https://www.rabbitmq.com/which-erlang.html)。