消息是如何存储的?不是在内存中!
现在是时候打破 RabbitMQ 将消息存储在内存中的神话了。虽然这在 RabbitMQ 的早期是事实,并且在过去 10 年中也是一种选择,但现代 RabbitMQ 版本几乎总是立即将消息写入磁盘。在这篇博文中,我们将回顾不同队列类型如何存储消息,但简短的答案是:不是在内存中!
现在是时候打破 RabbitMQ 将消息存储在内存中的神话了。虽然这在 RabbitMQ 的早期是事实,并且在过去 10 年中也是一种选择,但现代 RabbitMQ 版本几乎总是立即将消息写入磁盘。在这篇博文中,我们将回顾不同队列类型如何存储消息,但简短的答案是:不是在内存中!
一篇之前的文章介绍了 stream 过滤,这是 RabbitMQ 3.13 中的一个令人兴奋的新功能。在这篇文章中,我们介绍了 stream 过滤的内部原理。了解设计和实现将帮助您以最适合您的用例的方式配置和使用 stream 过滤。
Stream 过滤是 RabbitMQ 3.13 中的一项新功能。当消费者应用程序只需要 stream 消息的子集时,它可以节省 broker 和消费者应用程序之间的带宽。
继续阅读以了解 stream 过滤的工作原理,并在实际应用中查看它。
RabbitMQ 3.11 将为 streams 带来一个值得注意的功能:单活动消费者。单活动消费者在 stream 上提供独占消费和消费连续性。它对于充分利用超级 streams(我们用于分区的解决方案,为 streams 提供可伸缩性)也至关重要。
继续阅读以了解有关 streams 的单活动消费者的更多信息,并毫不犹豫地试用已有的功能:尝试一下,破坏它,告诉我们您喜欢和不喜欢什么,缺少什么。您的反馈对于使此功能尽可能出色至关重要。
RabbitMQ streams 允许应用程序借助其使用的强大的消息格式来传达详细信息。Streams 本身就是一个功能,但它们也与 RabbitMQ 支持的现有资源和协议完全集成。这篇博文涵盖了 RabbitMQ 中 streams 的互操作性,并探讨了它解锁的场景。
RabbitMQ Streams 为消费者提供服务器端偏移量跟踪。此功能允许消费者应用程序在上次运行停止的位置重新开始消费。这篇文章涵盖了偏移量跟踪的语义以及它在 stream Java 客户端中的实现方式。
RabbitMQ Streams 概述介绍了 streams,这是 RabbitMQ 3.9 中的一项新功能,RabbitMQ Streams 首个应用程序概述了 stream Java 客户端的编程模型。这篇文章介绍了如何在 RabbitMQ Streams 中对发布的消息进行去重。
由于去重是一个关键且复杂概念,因此这篇文章将逐步引导您了解此机制,从一个幼稚且有些损坏的发布应用程序到一个优化且可靠的实现。
RabbitMQ Streams 概述介绍了 streams,这是 RabbitMQ 3.9 中的一项新功能。这篇文章介绍了当stream 协议在使用时,客户端应用程序应如何连接到 RabbitMQ 节点,以从 streams 中获得最大收益。
Streams 针对高吞吐量场景进行了优化,这就是为什么数据局部性等技术细节对于充分利用 RabbitMQ 集群至关重要。客户端库可以处理大部分细节,但是当设置涉及容器和负载均衡器等额外层时,对底层工作原理的基本理解至关重要。如果您想了解有关 streams 的更多信息,并避免在部署您的第一个 stream 应用程序时遇到一些麻烦,请继续阅读!