EMQX版本热升级

EMQX 企业版技术支持发表于:2022年03月30日 15:53:02更新于:2022年03月30日 15:53:35

版本热升级

自 4.2.0 版本之后,EMQX 企业版 支持版本热升级。

使用版本热升级功能,用户可以快速、安全地升级生产环境的 EMQX 企业版,并避免了因重启服务导致的系统可用性降低。

目前 EMQX 企业版 仅支持 Patch 版本(Patch 版本是版本号的第三位)的热升级。 即,目前支持 4.2.0 -> 4.2.1,4.2.0 -> 4.2.2,... 等的热升级,但 4.2.x 无法热升级到 4.3.0 或者 5.0。

目前 Windows、MacOSX 暂不支持热升级功能。

热升级步骤

1.查看当前已安装的 EMQX Enterprise的版本列表。

$ ./bin/emqx versions

Installed versions:
* 4.3.6 permanent

2.从 EMQX 官网下载要升级的软件包。

访问https://www.emqx.com/en/try?product=enterprise选择对应的版本和操作系统类型,然后选择"zip"包类型。

例如:

$ wget https://www.emqx.com/zh/downloads/enterprise/v4.3.7/emqx-ee-centos7-4.3.7-amd64.zip

3.将下载的zip包放到EMQX安装目录下的releases目录下:

$ cp emqx-ee-centos7-4.3.7-amd64.zip /emqx/releases/

image-20220329101021199

4.升级到指定版本

## 在emqx目录下执行:
$ ./bin/emqx upgrade 4.3.7

Release 4.3.7 not found, attempting to unpack releases/emqx-4.3.7.tar.gz
Unpacked successfully: "4.3.7".
Installed Release: 4.3.7.
Made release permanent: "4.3.7"

image-20220329101428414

6.再次查看版本列表,之前的版本的状态将会变成old:

$ ./bin/emqx versions

Installed versions:
* 4.3.7 permanent
* 4.3.6 old

image-20220329101648348

升级后手动持久化

上面的 emqx upgrade 4.3.7 命令其实执行了三个动作:

  • 解压 zip 包 (unpack)

  • 安装 (install)

  • 持久化 (permanent)

持久化之后,这次版本升级将会被固定下来,这意味着热升级后,如果 emqx 发生重启,使用的将是升级之后的新版本。 如果不想在升级的同时持久化,可以使用 --no-permanent 参数:

$ ./bin/emqx upgrade --no-permanent 4.3.7

unzip ["releases/emqx-ee-centos7-4.3.7-amd64.zip"]
Release 4.3.7 not found, attempting to unpack releases/emqx-4.3.7.tar.gz
Unpacked successfully: "4.3.7".
Installed Release: 4.3.7.

这时版本已经成功升级到了 4.3.7,但如果重启 emqx,将会还原到旧版本 4.3.6。 现在如果查看版本列表,会发现 4.3.7 的状态为 "当前版本"(current),而不是持久化版本:

./bin/emqx versions

Installed versions:
* 4.3.7 current
* 4.3.6 permanent

image-20220329103006235

在系统稳定运行一段时间后,若决定持久化新版本,可以再次执行 install 命令:

$ ./bin/emqx install 4.3.7

##再次查看版本列表
./bin/emqx versions

image-20220329103200198

版本降级

如果升级后发现问题想要回退,可以执行版本降级命令。 比如下面的例子会将 emqx 回退到 4.3.6 版本:

./bin/emqx downgrade 4.3.6

##再次查看版本列表
./bin/emqx versions

image-20220329103504065

删除版本(注:目前删除旧版本存在问题,请勿使用!!!)

在系统稳定运行一段时间后,若决定删除一个旧版本,可以执行版本卸载命令。 比如下面的例子将会卸载旧版本的 4.3.6:

$ ./bin/emqx uninstall 4.3.6

Release 4.3.6 is marked old, uninstalling it.
Uninstalled Release: 4.3.6

image-20220329104010473



    您需要登录后才可以回复