Erlang 版本要求
介绍
本指南涵盖 Erlang/OTP 版本要求、Erlang 版本支持策略、RabbitMQ/Erlang 兼容性矩阵、特定版本的说明以及 提供 最新 Erlang/OTP 发行的途径。
支持的 Erlang 版本策略
RabbitMQ 支持最多 两个最新的 Erlang 发布系列。
目前它们是 Erlang 26.x
和 25.x
。
Erlang 27 支持
Erlang 27(于 2024 年 5 月发布)目前 不受任何可用的 RabbitMQ 版本支持。在 Erlang 27 上运行 RabbitMQ 时存在显著的性能下降。
Erlang 26 支持
从 RabbitMQ 3.12.0 开始支持 Erlang 26。
RabbitMQ 和 Erlang/OTP 兼容性矩阵
下表提供了当前支持的 RabbitMQ 发布系列的 Erlang 兼容性矩阵。对于已到期结束的 RabbitMQ 发布,请参见 不受支持的系列兼容性矩阵。
RabbitMQ 版本 | 最低所需的 Erlang/OTP | 最大支持的 Erlang/OTP | 说明 |
---|---|---|---|
|
|
|
警告 RabbitMQ 4.0 与 Erlang/OTP 27 协同工作。但是,存在已知的性能下降,这些问题将在补丁发布中解决。不建议在生产环境中将 RabbitMQ 4.0 运行在 Erlang 27 上,但可以在开发环境中使用。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
作为指南,建议使用每个受支持的 Erlang/OTP 系列的最新次要版本和补丁版本。
提供最新的 Erlang 发布版
可以从多个来源获取最新版本
- 来自 Team RabbitMQ 的 Debian Erlang 软件包,可在 Cloudsmith 及其镜像 或 Launchpad 上获取
- 来自 Team RabbitMQ 的零依赖 Erlang RPM,也可从 Cloudsmith 镜像 获取
- 作为 RabbitMQ Docker 镜像 的一部分
- Erlang/OTP 版本树 提供 Windows 补丁版本的二进制构建
- Erlang Solutions 包存储库
- 使用 kerl 从源代码构建
在 Debian 或 Ubuntu 上安装 Erlang/OTP
标准 Debian 和 Ubuntu 存储库提供 Erlang/OTP,但它被大量分割成数十个软件包。此外,除非系统启用了回溯存储库,否则版本往往非常旧。有关基本软件包、依赖项和备用 apt 存储库的更多信息,请参见 Debian 和 Ubuntu 安装指南。
在 RHEL、CentOS 和 Fedora 上安装 Erlang/OTP
有多个 RPM 软件包可用于 Erlang/OTP。推荐使用 来自 RabbitMQ 团队的零依赖 Erlang RPM。它紧密跟踪最新的 Erlang/OTP 补丁版本发布计划。
有关可用选项的更多信息,请参见 CentOS、RHEL 和 Fedora 安装指南。
集群中的 Erlang 版本
强烈建议 在所有 集群节点 上使用相同的 Erlang 主版本(例如 25.x
)。
当节点加入集群时,RabbitMQ 将检查 Erlang 及其分布式库的内部协议版本,如果检测到可能不兼容的组合,将拒绝集群。
除了合理的长升级时间窗口外,建议所有节点使用完全相同的 Erlang 版本。
从源代码构建 Erlang
如果给定操作系统没有提供足够新的 Erlang 软件包,则可以 从源代码构建 Erlang/OTP。这需要满足 Erlang 构建依赖关系的构建环境,例如现代的 OpenSSL 版本。
kerl 使得从源代码构建 Erlang/OTP 版本(包括来自 GitHub 的特定标签)变得更加轻松愉悦。
较旧的 RabbitMQ 和 Erlang 版本
不受支持的 RabbitMQ 系列
不受支持的 RabbitMQ 系列 | 最低所需的 Erlang/OTP | 最大支持的 Erlang/OTP | 说明 |
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
支持 R16B03 的最后一个版本
如果您绝对必须使用旧版本的 Erlang,RabbitMQ 3.6.14 是与 R16B03 兼容的最新版本。
支持 R13B03 的最后一个版本
如果您绝对必须使用旧版本的 Erlang,RabbitMQ 3.5.8 是与 R13B03 兼容的最新版本。