温馨提示×

Ubuntu RabbitMQ版本升级步骤

小樊
43
2025-12-12 23:12:16
栏目: 智能运维

Ubuntu 上 RabbitMQ 版本升级步骤

一 升级前准备

  • 核对当前版本与运行状态
    执行:rabbitmqctl versionrabbitmqctl statuserl -version,确认 RabbitMQErlang/OTP 的当前版本与节点健康状态。
  • 检查版本兼容矩阵
    重点核对目标 RabbitMQ 所需的 Erlang 范围,避免不兼容导致启动失败。示例(以常见版本为例):
    • RabbitMQ 4.0.x → Erlang 26–27.2.x
    • RabbitMQ 3.13.x → Erlang ≥26(最高至 26.2.x
    • RabbitMQ 3.12.x → Erlang ≥25(最高至 26.1.x
      若需升级 Erlang,请先按目标版本准备仓库与包。
  • 备份关键数据与配置
    • 元数据:rabbitmqctl export_definitions /path/to/definitions.json
    • 消息数据:/var/lib/rabbitmq(默认数据目录)整目录备份
    • 配置文件:/etc/rabbitmq/(如 rabbitmq.conf、advanced.config)
  • 检查并评估插件兼容性
    执行:rabbitmq-plugins list。注意:延迟交换机插件 rabbitmq_delayed_message_exchange 的版本号必须与 RabbitMQ 主版本号完全一致(如 3.12.x 对应插件 3.12.x)。不兼容插件先禁用。
  • 规划升级策略与窗口
    生产集群优先选择滚动升级(依次逐节点升级,混合版本运行时间尽量短),高可用场景可选蓝绿部署(构建新集群、导入元数据与数据、切换流量)。

二 使用 APT 的标准升级步骤(单机或集群均可)

  • 更新索引并查看可用版本
    • sudo apt update
    • apt policy rabbitmq-server(确认可升级的目标版本)
  • 执行升级(按策略执行)
    • 单机:
      • sudo systemctl stop rabbitmq-server
      • sudo apt install --only-upgrade rabbitmq-server
      • sudo systemctl start rabbitmq-server
    • 集群滚动升级(逐节点):
      • 在待升级节点执行:rabbitmqctl stop_app
      • 升级软件包:sudo apt install --only-upgrade rabbitmq-server
      • 启动应用:rabbitmqctl start_app
      • 验证节点与集群:rabbitmqctl statusrabbitmqctl cluster_status
      • 依次升级其余节点,尽量缩短混合版本运行时间。
  • 指定版本安装(可选)
    • sudo apt install rabbitmq-server=<目标版本号>
  • 重启与验证
    • sudo systemctl restart rabbitmq-server(如未自动启动)
    • rabbitmqctl status 与业务连通性验证。

三 升级后验证与常见问题处理

  • 基础验证
    • 服务状态:rabbitmqctl status
    • 集群状态:rabbitmqctl cluster_status(集群需确认节点一致性与镜像队列/策略生效)
    • 管理插件(如启用):访问 15672 管理界面,核对节点、队列、连接、策略与用户权限。
  • 插件与兼容性
    • 重新启用插件:rabbitmq-plugins enable <插件名>;若提示不兼容,先升级插件或回退版本。
    • 延迟插件必须与 RabbitMQ 主版本号一致,否则可能导致启动失败或功能异常。
  • 回滚方案(升级异常时)
    • 停止新版本:sudo systemctl stop rabbitmq-server
    • 降级软件包:sudo apt install rabbitmq-server=<旧版本号>
    • 恢复元数据:rabbitmqctl import_definitions /path/to/definitions.json
    • 必要时恢复数据目录与配置文件,再启动服务验证。

四 升级后注意事项

  • 版本支持策略
    优先保持在受支持的版本系列,及时获取安全补丁与修复。社区通常仅对每个 major 系列的最新 minor提供持续支持,超出支持期的版本不再公开补丁。
  • 元数据存储变更(4.2.0+)
    4.2.0 起,新集群默认使用 Khepri 作为元数据存储;已有集群升级时建议评估与测试该变更对运维与工具链的影响。
  • 客户端与特性变更
    升级后核对客户端库与协议特性兼容性。例如 4.2.0 起部分协议字段(如 durable 默认值)有调整,旧客户端可能出现消息路由或持久化行为变化,需按需升级客户端并回归测试。

0