RabbitMQ 4.1.0 已发布
RabbitMQ 4.1.0 是一个次要版本发布,其中包括 多项性能改进,以及一些新功能,例如用于 Kubernetes 的 新节点发现机制。
请参阅下面的兼容性说明,了解此版本中的重大更改或可能发生的更改。
亮点
此版本中的一些关键改进如下所列。
仲裁队列(Quorum Queue)吞吐量和并行度提升
仲裁队列的日志读取操作现在已卸载至通道(会话、连接)中执行。
从实际效果来看,这意味着消费者吞吐量的提高、发布者对队列向消费者交付速率干扰的降低,以及每个仲裁队列对 CPU 核心利用率的改善(前提是节点拥有足够的可用核心)。
初步支持 AMQP 1.0 过滤表达式
支持 AMQP 过滤表达式 1.0 版本工作草案 09 中的 properties 和 application-properties 过滤器。
正如 AMQP 1.0 过滤表达式博客文章中所述,此功能允许多个并发客户端在保持消息顺序的同时,仅消费流中消息的一个子集。
功能标志(Feature Flags)的用户体验改进
几个小版本前毕业(强制性)的 功能标志 表明它们在用户体验方面仍有改进空间。例如,当集群中所有节点都支持某些必需的功能标志时,它们现在会在节点启动时自动启用。
请参阅下方的核心服务器变更,以及专门用于功能标志改进的 GitHub 项目,以获取相关变更的完整列表。
rabbitmqadmin v2
rabbitmqadmin v2 是原 RabbitMQ HTTP API 命令行客户端的重大版本修订。
它支持更广泛的操作,包括健康检查、联邦上游(federation upstreams)操作、数据铲(shovels)、导出定义的转换、部分 Tanzu RabbitMQ HTTP API 端点、--long-option 以及交互模式下的子命令推断等。
重大变更与兼容性说明
初始 AMQP 0-9-1 最大帧大小
在客户端连接协商最大帧大小 (frame_max) 之前,必须先成功通过身份验证。在身份验证阶段之前,会使用一个特殊的较小 frame_max 值。
在此版本中,该值从原来的 4096 字节增加到 8192 字节,以容纳更大的 JWT 令牌。
覆盖 frame_max 的客户端现在必须使用 8192 字节或更大的值。我们建议使用服务器默认值 131072:不要在 rabbitmq.conf 中覆盖 frame_max 键,也不要在应用程序代码中设置它。
amqplib 是一个流行的客户端库,它一直使用 4096 的低 frame_max 默认值。其用户必须升级到兼容版本(从 0.10.7 开始)或显式使用更高的 frame_max。
MQTT
-
默认的 MQTT 最大数据包大小从 256 MiB 更改为 16 MiB。
此默认值可以通过配置
mqtt.max_packet_size_authenticated来覆盖。注意,此值不得大于max_message_size(默认值也为 16 MiB)。
etcd 对等发现
以下 rabbitmq.conf 设置不再受支持:
cluster_formation.etcd.ssl_options.fail_if_no_peer_certcluster_formation.etcd.ssl_options.dhcluster_formation.etcd.ssl_options.dhfile
Erlang/OTP 兼容性说明
此版本要求 Erlang 26.2,并支持 Erlang 27.x。
提供最新的 Erlang 版本说明了可以使用哪些软件包仓库和工具来获取 Erlang 26.x 和 27.x 的最新补丁版本。
发行版本
预览版本的构件通过 GitHub 发布分发
- 主仓库:
rabbitmq/rabbitmq-server - 开发构建仓库:
rabbitmq/server-packages
社区 RabbitMQ 镜像提供 4.1.0 预览版本。
升级到 4.1.0
升级文档指南
请参阅升级指南获取有关升级的文档,并查看 GitHub 发布页以获取各版本的发行说明。
此版本系列支持从 4.0.x 和 3.13.x 进行升级。
蓝绿部署式升级适用于从 RabbitMQ 3.12.x 系列迁移。
新的必需功能标志
无。必需的功能标志集与 4.0.x 相同。
混合版本集群兼容性
RabbitMQ 4.1.0 节点可以与 4.0.x 节点并存。仅当集群中的所有节点都升级到 4.1.0 或更高补丁版本时,4.1.x 的特定功能才会可用。
在混合版本模式下运行时,系统的某些方面可能表现不符合预期。已知的行为变更列表将在后续更新中说明。一旦所有节点升级到 4.1.0,这些异常现象将会消失。
混合版本集群是实现滚动升级的机制,不建议长时间(超过几小时)运行。
建议的升级后程序
与其他版本相比,此版本不需要任何额外的升级后程序。
发布构件
发布构件可在 GitHub 上获取,也可通过 RPM 和 Debian 软件包仓库获取。
社区支持现仅涵盖 4.1.x 系列
随着 RabbitMQ 4.1.0 的发布,该系列不再享有社区支持。
未来的 4.0.x 版本将仅对通过 Broadcom 客户门户的付费客户提供。
所有非付费用户必须升级到 4.1.0 才能获得核心团队的社区支持。
