跳至主要内容

带有“新功能”标签的 62 篇文章

查看所有标签

RabbitMQ 3.0 中破坏某些功能

·阅读时间:6 分钟
Simon MacMullen

RabbitMQ 包含许多很酷的新功能。但为了实现其中一些功能,我们需要更改某些内容。因此,在这篇博文中,我将列出其中的一些内容,以防您需要对此做任何处理。

MQTT 适配器

·阅读时间:5 分钟
Emile Joubert

我为 RabbitMQ 编写了一个插件,该插件增加了对 MQTT 3.1 协议的支持。MQ Telemetry Transport 是一种轻量级发布/订阅协议,专为资源受限的设备和带宽受限的情况而设计,使其非常适合传感器和移动设备。该实现是一个协议适配器插件,允许 MQTT 客户端同时连接到 RabbitMQ 代理以及实现其他协议的客户端。我们鼓励需要在可靠、可扩展的代理中结合低开销协议以及高可靠性和企业功能的项目考虑此选项。

介绍 RabbitMQ-Web-Stomp

·阅读时间:4 分钟
Marek Majkowski

有一段时间,在 RabbitMQ 总部,我们一直在努力寻找一种在 Web 浏览器中公开消息传递的好方法。过去,我们尝试过许多方法,从久负盛名的 JsonRPC 插件(基本上通过 AJAX 公开 AMQP)到 Rabbit-Socks(尝试创建通用协议集线器)再到管理插件(可用于发送和接收来自浏览器的基本消息)。

随着时间的推移,我们了解到 Web 上的消息传递与我们习惯的非常不同。我们的尝试都没有真正解决这个问题,并且 Web 上的消息传递可能在一段时间内都不会成为一个完全解决的问题。

也就是说,RabbitMQ 用户不断询问一件简单的事情,尽管它并不完美,但它远非在浏览器中进行消息传递的最糟糕方式:通过 Websockets 公开 STOMP。

一些排队理论:吞吐量、延迟和带宽

·阅读时间:12 分钟
Matthew Sackman

您在 Rabbit 中有一个队列。您有一些客户端从该队列中消费。如果您根本不设置 QoS 设置(basic.qos),那么 Rabbit 会尽快将所有队列消息推送到客户端,网络和客户端允许的范围内。消费者将在内存中膨胀,因为它们会将其自己的 RAM 中的所有消息缓冲。如果您询问 Rabbit,队列可能看起来为空,但可能有数百万条未确认的消息,因为它们驻留在客户端中,准备由客户端应用程序进行处理。如果您添加新的消费者,则队列中不再有消息发送给新消费者。消息只是在现有客户端中缓冲,并且可能存在很长时间,即使有其他消费者可以更快地处理此类消息。这相当不理想。

因此,默认的 QoS prefetch 设置为客户端提供了无限缓冲区,这可能导致不良的行为和性能。但是,您应该将 QoS prefetch 缓冲区大小设置为多少?目标是让消费者工作饱和,但要最大程度地减少客户端的缓冲区大小,以便更多消息保留在 Rabbit 的队列中,因此可以提供给新的消费者或在它们空闲时发送给消费者。

RabbitMQ 2.7.0 和 2.7.1 发布

·阅读时间:9 分钟
Steve Powell

RabbitMQ 的 先前版本(2.7.0)带来了更好的插件管理方式、客户端的一站式 URI 连接、Java 客户端中的线程安全消费者以及许多性能改进和错误修复。 最新版本(2.7.1)本质上是一个错误修复版本;尽管它还使 RabbitMQ 与 Erlang R15B 兼容并增强了一些管理界面。先前版本没有发布博文,因此我在一篇博文中将这两个版本结合在一起。(这些是我个人的评论,不具有约束力;疏忽或遗漏的错误完全由我本人负责——Steve Powell。)

队列的性能:少即是多

·阅读时间:9 分钟
Matthew Sackman

自从新的持久化程序出现在 RabbitMQ 2.0.0 中(是的,它现在已经不那么了)以来,Rabbit 在处理不断增长、增长、增长并达到无法在 RAM 中容纳的大小队列方面一直有一个相对不错的解决方案。Rabbit 很早就开始将消息写入磁盘,并以缓慢的速度继续这样做,因此当 RAM 变得非常紧张时,我们已经完成了大部分艰苦的工作,从而避免了突然的写入高峰。如果您的消息速率不太高或不太突发,则所有这些都应该在不会对任何连接的客户端造成任何实际影响的情况下发生。

最近与客户的讨论使我们重新审视了我们认为已经解决的问题,并促使我们进行了一些更改。

联合插件预览版

·阅读时间:4 分钟
Simon MacMullen

注意:这篇博文讨论了为 RabbitMQ 2.5.0 发布的联合插件预览版。如果您使用的是 2.6.0 或更高版本,则联合是主要版本的一部分;以与任何其他插件相同的方式获取它。

又一天,另一个新的插件发布😃今天是联合。如果您想跳过这篇文章并直接下载插件,请访问 此处。详细说明请访问 此处

联合的高级目标是在广域网和管理域中扩展发布/订阅消息传递。

为此,我们引入了联合交换的概念。联合交换充当给定类型的普通交换(它可以模拟任何已安装交换类型的路由逻辑),但同时也知道如何连接到上游交换(这反过来本身也可能是联合交换)。

© 2024 RabbitMQ. All rights reserved.