RabbitMQ 4.1.0 已发布
RabbitMQ 4.1.0 是一个次要版本发布,其中包括 多项性能改进,以及一些新功能,例如用于 Kubernetes 的 新节点发现机制。
请参阅下面的兼容性说明,了解此版本中的重大更改或可能发生的更改。
亮点
本次发布的一些主要改进列出如下。
Quorum 队列吞吐量和并行性改进
Quorum 队列的日志读取现已卸载到通道(会话、连接)。
实际而言,这意味着消费者吞吐量得到提高,发布者对队列向消费者传递速率的干扰降低,并且每个 Quorum 队列的 CPU 核心利用率得到改善(假设节点有足够的核心可用)。
初步支持 AMQP 1.0 过滤器表达式
支持 AMQP 过滤器表达式 1.0 工作草案 09 的 properties 和 application-properties 过滤器。
正如 AMQP 1.0 过滤器表达式 博客文章中所述,此功能使多个并发客户端能够各自仅消费流中的一部分消息,同时保持消息顺序。
功能标志(Feature Flags)的易用性改进
几年前就已毕业(强制性)的 功能标志 被证明可以改进用户体验。例如,某些必需的功能标志现在将在节点启动时启用,前提是集群中的所有节点都支持它们。
请参阅下面的核心服务器更改以及 专用于功能标志改进的 GitHub 项目,以获取相关更改的完整列表。
rabbitmqadmin v2
rabbitmqadmin v2 是 RabbitMQ HTTP API 的原始 CLI 客户端的主要修订版本。
它支持更广泛的操作,包括运行状况检查、联邦上游(federation upstreams)、Shovel、导出定义转换、(部分)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 Peer 发现
以下 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 releases 分发
- 在主存储库
rabbitmq/rabbitmq-server - 在开发构建存储库
rabbitmq/server-packages
社区 RabbitMQ 镜像 community RabbitMQ image 有一个 4.1.0 预览版本。
升级到 4.1.0
升级的文档指南
请参阅 升级指南 以获取有关升级的文档,以及 GitHub releases 以获取各个版本的发行说明。
此发布系列支持从 4.0.x 和 3.13.x 进行升级。
从 RabbitMQ 3.12.x 系列迁移,可使用 蓝绿部署(Blue/Green Deployment) 风格的升级。
新的必需功能标志
无。必需功能标志集与 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 才能获得核心团队的社区支持。
