温馨提示×

linux rabbitmq怎样升级

小樊
49
2026-10-28 15:22:07
栏目: 智能运维

在 Linux 上升级 RabbitMQ,通常分 升级 Erlang(如需要) 和 升级 RabbitMQ 本体 两部分。下面按常见场景说明。


一、升级前重要准备

1. 查看当前版本

rabbitmqctl status | head -n 20
rabbitmqctl version
erl -version

2. 阅读官方升级说明(非常重要)

RabbitMQ 对 版本跨度 有要求:

  • 小版本(3.12.x → 3.12.y):一般可直接升
  • 大版本(3.11 → 3.12):通常可升
  • 跨多个大版本(3.8 → 3.12):必须逐步升级

官方文档: https://www.rabbitmq.com/docs/upgrade

3. 备份数据(强烈建议)

# 停止服务
systemctl stop rabbitmq-server

# 备份数据目录(默认)
cp -r /var/lib/rabbitmq /var/lib/rabbitmq.bak
cp -r /etc/rabbitmq /etc/rabbitmq.bak

二、使用包管理器升级(推荐)

✅ Debian / Ubuntu

# 更新 apt 源(如来自 PackageCloud 或 RabbitMQ 官方)
apt-get update

# 升级
apt-get install --only-upgrade rabbitmq-server

# 或重新安装指定版本
apt-get install rabbitmq-server=3.12.x-1

✅ CentOS / RHEL

yum clean all
yum update rabbitmq-server

或(新版本):

dnf update rabbitmq-server

三、手动升级(适用于离线 / 二进制包)

1. 停止服务

systemctl stop rabbitmq-server

2. 下载新版本

wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.12.x/rabbitmq-server-3.12.x-1.el8.noarch.rpm

3. 安装

rpm -Uvh rabbitmq-server-3.12.x-1.el8.noarch.rpm

或 Debian:

dpkg -i rabbitmq-server_3.12.x-1_all.deb

4. 启动

systemctl start rabbitmq-server

四、Erlang 升级(常见坑)

RabbitMQ 对 Erlang 版本有强制要求:

RabbitMQ Erlang
3.12.x 25.0+
3.13.x 26.x

查看 Erlang

erl -version

升级 Erlang(示例 CentOS)

yum install erlang

或安装指定版本(推荐用 RabbitMQ 提供的 Erlang 包)

⚠️ 必须先升 Erlang,再升 RabbitMQ


五、集群升级(重点)

如果是 RabbitMQ 集群:

  1. 逐个节点升级(滚动升级)
  2. 每次只停一个节点
  3. 保证集群多数节点在线
  4. 升级顺序:
    • 普通节点 → 最后升级主节点
rabbitmqctl stop_app
# 升级
rabbitmqctl start_app

六、升级后检查

rabbitmqctl status
rabbitmqctl cluster_status
rabbitmqctl list_queues

查看日志:

tail -f /var/log/rabbitmq/rabbit@*.log

七、常见错误

问题 原因
node not running 数据版本不兼容
Erlang version mismatch Erlang 太低
mnesia corrupted 跨版本过大

如果你能告诉我:

  • Linux 发行版
  • 当前 RabbitMQ 版本
  • 是否集群

我可以给你 精确升级命令。

0 踩