RabbitMQ Streams 的交付优化
RabbitMQ Streams 专为高吞吐量场景而设计,但当您的入口速率较低时会发生什么?较低的消息速率会严重影响交付性能,使消息消耗速率降低一个数量级。RabbitMQ 4.2 引入了一项优化,可显著提高低吞吐量流的交付速率,使所有支持的协议都受益。
RabbitMQ Streams 专为高吞吐量场景而设计,但当您的入口速率较低时会发生什么?较低的消息速率会严重影响交付性能,使消息消耗速率降低一个数量级。RabbitMQ 4.2 引入了一项优化,可显著提高低吞吐量流的交付速率,使所有支持的协议都受益。
RabbitMQ 4.2 为 流 引入了 SQL 过滤器表达式,支持强大的代理端消息过滤。
在我们的基准测试中,将 SQL 过滤器与布隆过滤器结合使用,在具有高入口速率的高度选择性场景中,过滤速率超过了每秒 400 万条消息。这意味着只有您的消费者真正关心的消息才会离开代理,大大降低了网络流量和客户端处理开销。
RabbitMQ Go Stream 客户端 1.5.8 是一个新 bug 修复版本,包含一项 关键修复。
此修复回滚了 PR 393,该 PR 引入了一个危险的 bug,导致在通道达到最大容量时库会跳过数据块的传递。实际上,消息将停止分发给应用程序。
该 bug 在消费者长时间处于接近峰值传递压力时,或者在消费者持续处理传递缓慢时触发。
该 bug 影响以下版本:1.5.5、1.5.6 和 1.5.7。
我们强烈建议尽快将客户端更新到 1.5.8。
是时候打破“RabbitMQ 将消息存储在内存中”的迷思了。虽然这在 RabbitMQ 的早期是事实,并且在过去十年中一直是一个选项,但现代 RabbitMQ 版本几乎总是会立即将消息写入磁盘。在这篇博文中,我们将回顾不同类型的队列如何存储消息,但简短的答案是:不在内存中!
之前的帖子介绍了 RabbitMQ 3.13 中的一项令人兴奋的新功能——流过滤。在本帖中,我们将介绍流过滤的内部机制。了解其设计和实现将有助于您以最适合您的用例的方式来配置和使用流过滤。
流过滤是 RabbitMQ 3.13 中的一项新功能。当消费应用程序只需要流中的一部分消息时,它可以节省代理和消费应用程序之间的带宽。
继续阅读以了解流过滤的工作原理并查看其实际应用。
RabbitMQ 3.11 将带来一个在其历史上名称最酷的功能之一:Super Streams。Super Streams 是一种通过将大型流分区为较小流来扩展的方法。它们与Single Active Consumer集成,以在分区内保留消息顺序。
这篇博文概述了 Super Streams 及其带来的用例。继续阅读以了解更多信息,我们重视您的反馈,以使此功能尽善尽美。
RabbitMQ 3.11 将为 Stream 带来一个值得关注的功能:单活动消费者。单活动消费者为 Stream 提供独占消费和消费连续性。它对于充分利用我们用于分区的解决方案Super Streams 也至关重要,该解决方案为 Stream 提供可扩展性。
请继续阅读以了解有关 Stream 单活动消费者的更多信息,并且不要犹豫尝试已经可用的功能:试用,破坏它,告诉我们您喜欢和不喜欢什么,还缺少什么。您的反馈对于使此功能尽善尽美至关重要。
RabbitMQ Streams 允许应用程序通过其使用的强大消息格式传递详细信息。Streams 本身是一项功能,但它们也与 RabbitMQ 支持的现有资源和协议完全集成。这篇博文涵盖了 RabbitMQ Streams 的互操作性,并探讨了它带来的场景。