温馨提示×

Ubuntu RabbitMQ版本升级指南

小樊
45
2025-12-24 18:25:10
栏目: 智能运维

Ubuntu 上 RabbitMQ 版本升级指南

一 升级前准备

  • 核对当前状态与版本:查看 RabbitMQErlang/OTP 版本,确认插件启用情况,并检查集群节点状态。示例:sudo systemctl status rabbitmq-serverrabbitmqctl statusrabbitmq-plugins listsudo systemctl is-active rabbitmq-server
  • 核对兼容性:升级前务必确认目标 RabbitMQ 版本与 Erlang/OTP 版本兼容,避免因运行时不匹配导致启动失败或异常。
  • 备份关键数据与配置:建议完整备份 /etc/rabbitmq/(配置)与 /var/lib/rabbitmq/(数据,含 mnesia 数据库与消息存储),以便回滚。
  • 选择升级策略:单机环境直接升级;集群环境建议按“先单节点验证、再滚动升级、最后恢复集群”的顺序执行,减少业务中断。
  • 维护窗口与通知:提前通知业务方,设置维护窗口,并在升级期间避免创建/删除队列、策略等结构性变更。

二 使用 APT 原地升级(推荐)

  • 更新索引与查看可用版本:
    • sudo apt update
    • apt policy rabbitmq-server(查看可升级版本与仓库优先级)
  • 原地升级:
    • 常规:sudo apt install --only-upgrade rabbitmq-server
    • 指定版本:sudo apt install rabbitmq-server=<version>(将 替换为目标版本)
  • 重启与验证:
    • sudo systemctl restart rabbitmq-server
    • rabbitmqctl statussudo systemctl is-active rabbitmq-server 确认运行状态与版本
  • 回滚(如出现问题):
    • sudo apt install rabbitmq-server=<old_version> 恢复到上一个已知良好版本,并重启服务

三 使用官方仓库安装或跨版本升级

  • 导入签名与添加仓库(以 Ubuntu 18.04 Bionic 为例,其他版本替换代号):
    • 安装工具: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 > /devref
      • curl -1sLf https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/gpg.E495BB49CC4BBE5B.key | sudo gpg --dearmor | sudo tee /usr/share/keyrings/io.cloudsmith.rabbitmq.E495BB49CC4BBE5B.gpg > /devref
      • curl -1sLf https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/gpg.9F4587F226208342.key | sudo gpg --dearmor | sudo tee /usr/share/keyrings/io.cloudsmith.rabbitmq.9F4587F226208342.gpg > /devref
    • 添加源:
      • sudo tee /etc/apt/sources.list.d/rabbitmq.list <<EOF
        • deb [signed-by=/usr/share/keyrings/io.cloudsmith.rabbitmq.E495BB49CC4BBE5B.gpg] https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/deb/ubuntu bionic main
        • deb-src [signed-by=/usr/share/keyrings/io.cloudsmith.rabbitmq.E495BB49CC4BBE5B.gpg] https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/deb/ubuntu bionic main
        • deb [signed-by=/usr/share/keyrings/io.cloudsmith.rabbitmq.9F4587F226208342.gpg] https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/deb/ubuntu bionic main
        • deb-src [signed-by=/usr/share/keyrings/io.cloudsmith.rabbitmq.9F4587F226208342.gpg] https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/deb/ubuntu bionic main
        • EOF
    • 更新索引并安装/升级:
      • sudo apt-get update -y
      • 安装高版本 Erlang(按需选择组件):
        • sudo apt-get install -y erlang-base erlang-asn1 erlang-crypto erlang-eldap erlang-ftp erlang-inets erlang-mnesia erlang-os-mon erlang-parsetools erlang-public-key erlang-runtime-tools erlang-snmp erlang-ssl erlang-syntax-tools erlang-tftp erlang-tools erlang-xmerl
      • 安装/升级 RabbitMQsudo apt-get install -y rabbitmq-server --fix-missing
  • 验证:rabbitmqctl statussudo systemctl is-active rabbitmq-server

四 升级后验证与常见问题

  • 版本与服务状态:
    • rabbitmqctl status(查看节点与运行时信息)
    • sudo systemctl status rabbitmq-server(确保服务为 active (running)
  • 插件与功能:
    • rabbitmq-plugins list(确认常用插件如 rabbitmq_management 处于期望状态)
  • 集群健康:
    • rabbitmqctl cluster_status(检查节点列表、分区状态与镜像队列同步情况)
  • 常见问题与处理:
    • 启动失败或异常:优先检查 Erlang/OTPRabbitMQ 版本兼容性,并回滚到上一个稳定版本验证。
    • 依赖错误(手动安装 .deb 时):执行 sudo apt-get install -f 自动补齐依赖。
    • 升级后策略/权限异常:核对 /etc/rabbitmq/ 配置是否被覆盖,必要时从备份恢复并按需重新声明策略与权限。

五 回滚与卸载

  • 回滚版本:
    • APT 场景:sudo apt install rabbitmq-server=<old_version>,随后 sudo systemctl restart rabbitmq-server 并验证。
  • 卸载清理(如需重装或彻底移除):
    • 卸载 RabbitMQ:sudo apt-get remove rabbitmq-server
    • 清理残留:sudo apt autoremove --purge <残留包名>(按 dpkg --list | grep rabbitmq 结果逐一清理)
    • 如需同时移除 Erlangsudo apt-get remove erlang 并清理残留(按 dpkg --list | grep erlang 结果逐一清理)

0