RabbitMQ 4.1 性能改进
RabbitMQ 4.1 即将发布(更新:已发布),并且一如既往,除了新功能之外,我们还进行了一些内部改进,以提供更好的性能。
至少有 4 项值得注意的改进
- 仲裁队列的内存使用率更低且更稳定
- 消费长仲裁队列时性能大幅提升
- WebSocket 连接性能更佳
- TCP 连接内存使用率更低和/或吞吐量更高
RabbitMQ 4.1 即将发布(更新:已发布),并且一如既往,除了新功能之外,我们还进行了一些内部改进,以提供更好的性能。
至少有 4 项值得注意的改进
RabbitMQ 4.1 包含一个为 Kubernetes 完全重新设计的对等发现插件。升级到 4.1 时不需要进行任何配置更改,因此,如果您愿意,可以就此停止阅读。如果您对细节感兴趣,请继续阅读。这篇博文将解释对等发现子系统的一般概念以及 rabbitmq_peer_discovery_k8s 的具体更改。
RabbitMQ 3.13.8 是 3.13.x 系列的一个新补丁版本。此系列目前仅受 商业支持的覆盖。
有关公开可用的开源版本,请参阅 4.0.x 系列。
3.13.x 系列的发行版本可通过 Broadcom 客户门户获取。
如果您从 3.13.9 之前的版本升级,请参阅 3.13.0 版本说明。
Tanzu RabbitMQ 3.13.8 是 RabbitMQ 商业版 3.13.x 系列的一个新补丁版本。
此版本包含附加功能,例如热备冗余、集群内部流量压缩以及启用了 FIPS 的 Erlang 运行时。
Tanzu RabbitMQ 可在 Kubernetes 上获得,作为 OCI 镜像,以及 OVA 镜像。
此版本基于开源 RabbitMQ 3.13.x,并包含 开源 RabbitMQ 3.13.8 中的所有最新回溯。
3.13.x 系列的发行版本可通过 Broadcom 客户门户获取。
如果您从 3.13.9 之前的版本升级,请先参阅 开源 RabbitMQ 3.13.0 版本说明。
是时候打破“RabbitMQ 将消息存储在内存中”的迷思了。虽然这在 RabbitMQ 的早期是事实,并且在过去十年中一直是一个选项,但现代 RabbitMQ 版本几乎总是会立即将消息写入磁盘。在这篇博文中,我们将回顾不同类型的队列如何存储消息,但简短的答案是:不在内存中!
Erlang 端口映射器守护进程 (epmd) 是一个内置组件,可帮助 Erlang 应用程序(包括 RabbitMQ)相互发现其分发端口。与用于主机名解析的 DNS 一起,epmd 是 RabbitMQ 节点进行集群、节点间通信和 CLI 工具连接依赖的基础架构的一部分。
虽然 epmd 的范围非常有限,但其暴露在公共互联网上通常意味着 Erlang 分发端口也暴露在外。这造成了潜在的安全风险:如果攻击者发现这些分发端口,他们只需要一个秘密值就可以对节点(或集群)执行 CLI 命令。
最近的扫描显示,有超过 85,000 个公共可访问的 epmd 实例,其中大约一半与 RabbitMQ 服务器相关。
幸运的是,通常只需要限制对端口范围的网络访问即可缓解此风险。epmd 和节点间通信也可以限制在本地网络接口,特别是用于运行测试的单节点集群。
阅读 Erlang 生态基金会博客上的完整文章。