Skip to content

滚动升级

在集群中的 EMQX 节点可以一次一个地进行升级,无需停掉整个集群。这个过程被称为滚动升级。为了实现平滑的客户端会话迁移,在 EMQX 企业版中您可以使用集群重平衡功能,在升级节点之前将客户端从节点中迁移到其他节点。关于集群再平衡的更多信息,请参见此文档

升级到 EMQX 5.9 或更高版本的重要说明

从 5.9.0 版本开始,EMQX 企业版采用商业源代码许可协议发布,替代了之前开源版与企业版分开的模式。

尽管升级 EMQX 的技术步骤(如替换可执行文件)与之前版本类似,但从 5.9.0 开始引入了关键的 License 变更,特别是对于集群部署。如果您正从 5.9 之前的开源版本升级,或从单节点部署切换到集群部署,请务必注意以下几点:

  1. 新的 Licensing 模式:EMQX 5.9.0 及以上版本默认提供 EMQX 社区版 License。该 License 允许启用所有功能,但仅支持单节点部署。
  2. 集群要求:之前的开源版本支持集群部署。而在 5.9.0 及以上版本中,默认情况下不再支持集群功能。如果您希望保留集群能力,必须申请商业 License
  3. License 配置要求:在集群中启动任何运行 5.9.0 及以上版本的节点之前,必须在该节点上正确配置商业 License。如果未配置或配置错误,该节点将无法在集群中正常工作。

注意

如果在 emqx.conf 中添加 License 的配置,那么来自 Dashboard、HTTP API 或 CLI 的更改会在节点重启后失效, 这是因为节点启动加载配置时,emqx.conf 和环境变量具有最高优先级。

如何执行滚动升级

集群节点的滚动升级过程如下:

  1. 使用集群重平衡将客户端从节点中清除。(可选)
  2. 停止旧版本节点。
  3. 备份节点的配置文件和数据目录。
  4. 安装新版本的 EMQX。
  5. 启动新版本节点。

注意

在滚动升级期间,请勿进行集群范围的配置更改。从 Dashboard、HTTP API 或 CLI 进行的配置更改将应用于集群中的所有节点。在滚动升级期间进行配置更改可能会导致节点不同步。

使用 RPM 和 DEB 包进行升级

如果您使用的是 RPM 或 DEB 包,可以直接安装新版本包覆盖旧版本,以完成升级。

使用 Docker 进行升级

如果您使用的是 Docker 部署,可以通过拉取新版本镜像并重启容器的方式完成升级。