新闻详情

新闻详情

首页 / 资讯中心 / 详情

RabbitMQ 3.10.10 维护版发布解析:经典镜像队列、MQTT 维护模式修复与 Erlang 版本要求

发布时间:2026/10/30 12:03:16来源:尧图网络
RabbitMQ 3.10.10 维护版发布解析:经典镜像队列、MQTT 维护模式修复与 Erlang 版本要求
后端消息队列消息路由【免费下载链接】rabbitmq-serverOpen source RabbitMQ: core server and tier 1 (built-in) plugins项目地址https://gitcode.com/gh_mirrors/ra/rabbitmq-server点击查看免费下载RabbitMQ3.10.10是3.10.x系列的一个维护版本maintenance release聚焦于修复经典镜像队列classic mirrored queues与 MQTT 插件在特定场景下的缺陷并同步更新了 Erlang 运行时版本要求。本文以 release-notes/3.10.10.md 为核心结合仓库源码逐一剖析每一项修复背后的实现细节、影响范围与升级注意事项帮助读者在升级或排查问题时快速定位。版本定位与升级前提3.10.10属于3.10.x发布系列属于维护版本不带新增功能主要目的是修复缺陷。如果从3.10.0之前的版本升级请先参考 v3.10.0 release notes 中的升级章节upgrade section按步骤完成过渡升级不能直接跨版本跳级。本版本的另一个关键信息是 Erlang 运行时要求最低支持版本Erlang 23 已到达其支持终点end of support因此本版本要求Erlang 24.2 或更高版本启动硬约束在更老版本的 Erlang 上节点将无法启动Nodes will fail to start这不是警告而是硬性失败推荐版本Erlang 25原因有三在 ARM64 架构上性能提升明显支持各架构下的火焰图flame graphs性能剖析包含最新的 TLS 1.3 实现。更详细的版本对应关系可参考仓库中的 docs/COMPATIBILITY.md 与 docs/compatibility.json。核心服务器修复部分回滚不安全的节点间通信优化问题背景本次修复部分回滚了一项被判定为不安全的节点间通信优化原优化见 PR #3865 对应的优化逻辑该优化可能影响经典镜像队列的操作顺序operation ordering进而破坏队列语义。社区贡献感谢 bording 提供了可自动复现该问题的工具链使得问题得以定位并验证修复效果。当前实现佐证经典镜像队列的节点间协调依赖rabbit_mirror_queue_misc等模块参见 deps/rabbit/src/rabbit_mirror_queue_misc.erl队列进程之间的消息投递与确认通过delegate:invoke_no_result/2等机制进行见 deps/rabbit/src/rabbit_classic_queue.erl。回滚该优化后节点间通信恢复到更保守的顺序保证代价是部分场景下的吞吐优化被放弃换取镜像队列操作的确定性。对运维的影响正在使用经典镜像队列policy 中ha-mode: exactly等镜像策略的环境建议尽快升级到本版本以避免潜在的乱序风险。经典镜像队列 Leader 过度发放 Credit 导致负载不均问题背景经典镜像队列的 Leader 副本向 Follower 副本发放了过多的 credit信用额度导致各副本之间的负载和内存占用不均——部分副本收到的消息量远大于其他副本造成热点。Credit 机制在源码中的体现经典队列的 credit 流控贯穿rabbit_channel与队列进程之间的信用协商通道通过credit/6接口向队列进程发送{credit, self(), Ctag, DeliveryCountRcv, LinkCreditRcv, Drain}请求见 deps/rabbit/src/rabbit_classic_queue.erl队列进程在投递消息时通过credit_flow:send(QPid)进行信用计数见 deps/rabbit/src/rabbit_classic_queue.erl处理完 credit 请求后通过send_credit_reply/7返回#credit_reply{ctag, delivery_count, credit, avail, drain}结构见 deps/rabbit/src/rabbit_classic_queue.erl。本次修复调整了 Leader 向 Follower 发放 credit 的额度策略使消息在各副本间更均匀地分布从而均衡内存占用与 CPU 负载。对于多节点、高吞吐镜像队列集群这一修复能直接缓解单副本内存暴涨的告警场景。集群内通信链路指标采集器异常修复问题背景当对端节点重启、集群内部 peer 连接刚刚重建re-established时intra-cluster communication link 的指标采集器可能抛出异常导致相关指标缺失或采集任务中断。影响场景滚动升级、单节点重启、网络分区恢复后集群内节点间连接会频繁重建此时如果指标采集器异常监控面板上的链路指标如 inter-node link 的发送/接收字节数会出现空洞。修复效果本次修复让指标采集器在 peer 连接重建的竞态窗口内也能安全运行不再抛出异常保证 Prometheus 等监控数据连续可靠。MQTT 插件修复维护模式下错误地关闭了集群范围的全部 MQTT 连接问题背景当节点进入维护模式maintenance mode时本应只关闭本节点本地的 MQTT 客户端连接但修复前的实现错误地关闭了集群范围内所有节点的 MQTT 客户端连接导致维护一个节点时其他健康节点上的 MQTT 客户端也被强制断开影响面远超预期。源码实现佐证修复后的实现位于 MQTT 插件的内部事件处理器中deps/rabbitmq_mqtt/src/rabbit_mqtt_internal_event_handler.erlhandle_event({event, maintenance_connections_closed, _Info, _, _}, ?STATE) - {ok, NConnections} rabbit_mqtt:close_local_client_connections(maintenance), ?LOG_WARNING(Closed ~b local (Web) MQTT client connections, [NConnections]), {ok, ?STATE};关键点在于close_local_client_connections/1——从函数命名和调用语义可以看出它只处理本地节点维护的客户端连接并返回关闭数量NConnections用于日志告警。这正是对cluster-wide 误关闭缺陷的针对性修复事件在各节点本地触发各节点只关闭自己维护的连接。事件触发链路该事件由rabbit_maintenance在节点进入维护模式drain时通过rabbit_event:notify(maintenance_connections_closed, ...)广播见 deps/rabbit/src/rabbit_maintenance.erl同时会先关闭本地 AMQP 客户端连接并挂起所有监听器。MQTT 插件的事件处理器订阅该事件后仅对本节点的 MQTT 连接执行关闭从而避免波及集群其他节点。连接关闭的底层行为本地连接关闭由rabbit_mqtt_reader的close_connection/2触发见 deps/rabbitmq_mqtt/src/rabbit_mqtt_reader.erl对maintenance这一关闭原因读者进程会向客户端发送 MQTT 断开包断开码为?RC_SERVER_SHUTTING_DOWN0x8BServer shutting down见 deps/rabbitmq_mqtt/src/rabbit_mqtt_reader.erl随后以{shutdown, {disconnect, server_initiated}}停止进程。这样 MQTT 客户端收到明确的服务端关闭原因可以按 MQTT 规范进行优雅重连配合clean session语义由客户端自行决策。运维建议对使用 MQTT 插件的集群执行维护操作如滚动升级、节点隔离时升级到3.10.10后维护模式只会影响被维护节点上的 MQTT 连接集群其他节点的 MQTT 客户端保持在线业务中断面大幅缩小。依赖升级本版本没有依赖升级Dependency Upgrades: None in this release因此升级带来的回归风险主要来自上述代码修复本身依赖层面的兼容性无需额外评估。获取完整源码要获取整个发行版的源代码请下载名为rabbitmq-server-3.10.10.tar.xz的归档文件而不要使用 GitHub 自动生成的源码 tarball——前者包含完整的构建依赖与子模块如deps/下的全部插件后者可能因子模块引用不完整而导致构建失败。升级检查清单检查项要求Erlang 版本≥ 24.2推荐 25ARM64 性能、火焰图、最新 TLS 1.3跨版本升级从 3.10.0 之前版本升级时先完成过渡版本升级经典镜像队列修复 credit 发放与节点间通信顺序问题建议升级MQTT 插件修复维护模式误关集群连接维护操作影响面更可控依赖无变化无需额外兼容性验证总结3.10.10虽然是一个小版本维护发布但其中两项修复对生产环境价值明显一是经典镜像队列在节点间通信顺序与 credit 发放上的稳定性修复直接关系到镜像队列的数据一致性与负载均衡二是 MQTT 插件在维护模式下误伤整个集群连接的缺陷修复让维护操作真正实现局部可控。配合 Erlang 24.2 的最低版本门槛建议所有使用镜像队列或 MQTT 插件的3.10.x用户尽快规划升级并参照 release-notes 目录下的其他版本说明制定升级路径。RabbitMQ 3.10.10 维护版发布解析经典镜像队列、MQTT 维护模式修复与 Erlang 版本要求RabbitMQ3.10.10是3.10.x系列的一个维护版本maintenance release聚焦于修复经典镜像队列classic mirrored queues与 MQTT 插件在特定场景下的缺陷并同步更新了 Erlang 运行时版本要求。本文以 release-notes/3.10.10.md 为核心结合仓库源码逐一剖析每一项修复背后的实现细节、影响范围与升级注意事项帮助读者在升级或排查问题时快速定位。版本定位与升级前提3.10.10属于3.10.x发布系列属于维护版本不带新增功能主要目的是修复缺陷。如果从3.10.0之前的版本升级请先参考 v3.10.0 release notes 中的升级章节upgrade section按步骤完成过渡升级不能直接跨版本跳级。本版本的另一个关键信息是 Erlang 运行时要求最低支持版本Erlang 23 已到达其支持终点end of support因此本版本要求Erlang 24.2 或更高版本启动硬约束在更老版本的 Erlang 上节点将无法启动Nodes will fail to start这不是警告而是硬性失败推荐版本Erlang 25原因有三在 ARM64 架构上性能提升明显支持各架构下的火焰图flame graphs性能剖析包含最新的 TLS 1.3 实现。更详细的版本对应关系可参考仓库中的 docs/COMPATIBILITY.md 与 docs/compatibility.json。核心服务器修复部分回滚不安全的节点间通信优化问题背景本次修复部分回滚了一项被判定为不安全的节点间通信优化原优化见 PR #3865 对应的优化逻辑该优化可能影响经典镜像队列的操作顺序operation ordering进而破坏队列语义。社区贡献感谢 bording 提供了可自动复现该问题的工具链使得问题得以定位并验证修复效果。当前实现佐证经典镜像队列的节点间协调依赖rabbit_mirror_queue_misc等模块参见 deps/rabbit/src/rabbit_mirror_queue_misc.erl队列进程之间的消息投递与确认通过delegate:invoke_no_result/2等机制进行见 deps/rabbit/src/rabbit_classic_queue.erl。回滚该优化后节点间通信恢复到更保守的顺序保证代价是部分场景下的吞吐优化被放弃换取镜像队列操作的确定性。对运维的影响正在使用经典镜像队列policy 中ha-mode: exactly等镜像策略的环境建议尽快升级到本版本以避免潜在的乱序风险。经典镜像队列 Leader 过度发放 Credit 导致负载不均问题背景经典镜像队列的 Leader 副本向 Follower 副本发放了过多的 credit信用额度导致各副本之间的负载和内存占用不均——部分副本收到的消息量远大于其他副本造成热点。Credit 机制在源码中的体现经典队列的 credit 流控贯穿rabbit_channel与队列进程之间的信用协商通道通过credit/6接口向队列进程发送{credit, self(), Ctag, DeliveryCountRcv, LinkCreditRcv, Drain}请求见 deps/rabbit/src/rabbit_classic_queue.erl队列进程在投递消息时通过credit_flow:send(QPid)进行信用计数见 deps/rabbit/src/rabbit_classic_queue.erl处理完 credit 请求后通过send_credit_reply/7返回#credit_reply{ctag, delivery_count, credit, avail, drain}结构见 deps/rabbit/src/rabbit_classic_queue.erl。本次修复调整了 Leader 向 Follower 发放 credit 的额度策略使消息在各副本间更均匀地分布从而均衡内存占用与 CPU 负载。对于多节点、高吞吐镜像队列集群这一修复能直接缓解“单副本内存暴涨”的告警场景。集群内通信链路指标采集器异常修复问题背景当对端节点重启、集群内部 peer 连接刚刚重建re-established时intra-cluster communication link 的指标采集器可能抛出异常导致相关指标缺失或采集任务中断。影响场景滚动升级、单节点重启、网络分区恢复后集群内节点间连接会频繁重建此时如果指标采集器异常监控面板上的链路指标如 inter-node link 的发送/接收字节数会出现空洞。修复效果本次修复让指标采集器在 peer 连接重建的竞态窗口内也能安全运行不再抛出异常保证 Prometheus 等监控数据连续可靠。MQTT 插件修复维护模式下错误地关闭了集群范围的全部 MQTT 连接问题背景当节点进入维护模式maintenance mode时本应只关闭本节点本地的 MQTT 客户端连接但修复前的实现错误地关闭了集群范围内所有节点的 MQTT 客户端连接导致维护一个节点时其他健康节点上的 MQTT 客户端也被强制断开影响面远超预期。源码实现佐证修复后的实现位于 MQTT 插件的内部事件处理器中deps/rabbitmq_mqtt/src/rabbit_mqtt_internal_event_handler.erlhandle_event({event, maintenance_connections_closed, _Info, _, _}, ?STATE) - {ok, NConnections} rabbit_mqtt:close_local_client_connections(maintenance), ?LOG_WARNING(Closed ~b local (Web) MQTT client connections, [NConnections]), {ok, ?STATE};关键点在于close_local_client_connections/1——从函数命名和调用语义可以看出它只处理本地节点维护的客户端连接并返回关闭数量NConnections用于日志告警。这正是对“cluster-wide 误关闭”缺陷的针对性修复事件在各节点本地触发各节点只关闭自己维护的连接。事件触发链路该事件由rabbit_maintenance在节点进入维护模式drain时通过rabbit_event:notify(maintenance_connections_closed, ...)广播见 deps/rabbit/src/rabbit_maintenance.erl同时会先关闭本地 AMQP 客户端连接并挂起所有监听器。MQTT 插件的事件处理器订阅该事件后仅对本节点的 MQTT 连接执行关闭从而避免波及集群其他节点。连接关闭的底层行为本地连接关闭由rabbit_mqtt_reader的close_connection/2触发见 deps/rabbitmq_mqtt/src/rabbit_mqtt_reader.erl对maintenance这一关闭原因读者进程会向客户端发送 MQTT 断开包断开码为?RC_SERVER_SHUTTING_DOWN0x8BServer shutting down见 deps/rabbitmq_mqtt/src/rabbit_mqtt_reader.erl随后以{shutdown, {disconnect, server_initiated}}停止进程。这样 MQTT 客户端收到明确的服务端关闭原因可以按 MQTT 规范进行优雅重连配合clean session语义由客户端自行决策。运维建议对使用 MQTT 插件的集群执行维护操作如滚动升级、节点隔离时升级到3.10.10后维护模式只会影响被维护节点上的 MQTT 连接集群其他节点的 MQTT 客户端保持在线业务中断面大幅缩小。依赖升级本版本没有依赖升级Dependency Upgrades: None in this release因此升级带来的回归风险主要来自上述代码修复本身依赖层面的兼容性无需额外评估。获取完整源码要获取整个发行版的源代码请下载名为rabbitmq-server-3.10.10.tar.xz的归档文件而不要使用 GitHub 自动生成的源码 tarball——前者包含完整的构建依赖与子模块如deps/下的全部插件后者可能因子模块引用不完整而导致构建失败。升级检查清单检查项要求Erlang 版本≥ 24.2推荐 25ARM64 性能、火焰图、最新 TLS 1.3跨版本升级从 3.10.0 之前版本升级时先完成过渡版本升级经典镜像队列修复 credit 发放与节点间通信顺序问题建议升级MQTT 插件修复维护模式误关集群连接维护操作影响面更可控依赖无变化无需额外兼容性验证总结3.10.10虽然是一个小版本维护发布但其中两项修复对生产环境价值明显一是经典镜像队列在节点间通信顺序与 credit 发放上的稳定性修复直接关系到镜像队列的数据一致性与负载均衡二是 MQTT 插件在维护模式下“误伤”整个集群连接的缺陷修复让维护操作真正实现“局部可控”。配合 Erlang 24.2 的最低版本门槛建议所有使用镜像队列或 MQTT 插件的3.10.x用户尽快规划升级并参照 release-notes 目录下的其他版本说明制定升级路径。赞分享后端消息队列消息路由【免费下载链接】rabbitmq-serverOpen source RabbitMQ: core server and tier 1 (built-in) plugins项目地址https://gitcode.com/gh_mirrors/ra/rabbitmq-server点击查看免费下载相关推荐RabbitMQ 3.11.2 维护版本解析镜像队列稳定性修复与 MQTT 维护模式行为修正RabbitMQ 3.11.2 维护版本解析镜像队列稳定性修复与 MQTT 维护模式行为修正 RabbitMQ 3.11.2 是 3.11.x 发布系列中的一后端消息队列消息路由RabbitMQ 3.10.24 维护版本深度解读CQv1 队列索引恢复修复与 Erlang 版本要求RabbitMQ 3.10.24 维护版本深度解读CQv1 队列索引恢复修复与 Erlang 版本要求 本文以 RabbitMQ 3.10.x 系列的第 24后端消息队列消息路由RabbitMQ 3.10.17 维护版本解析Erlang 版本要求与 Management UI Admin 页签修复RabbitMQ 3.10.17 维护版本解析Erlang 版本要求与 Management UI Admin 页签修复 RabbitMQ 3.10.17 是后端消息队列消息路由创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/10/30 4:02:09

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/10/29 23:30:48

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/10/29 13:36:24

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/10/29 19:55:35

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/10/29 13:36:50

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/10/30 5:26:05

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉