使用 RabbitMQ 调度消息
人们一直在寻找使用 RabbitMQ 实现延迟消息传递的方法。到目前为止,公认的解决方案是结合使用 消息 TTL 和 死信交换机,如 James Carr 此处 所述。一段时间以来,我们一直考虑为此提供开箱即用的解决方案,并且在过去的一个月里,我们有时间将其作为插件实现。推出 RabbitMQ 延迟消息插件。
人们一直在寻找使用 RabbitMQ 实现延迟消息传递的方法。到目前为止,公认的解决方案是结合使用 消息 TTL 和 死信交换机,如 James Carr 此处 所述。一段时间以来,我们一直考虑为此提供开箱即用的解决方案,并且在过去的一个月里,我们有时间将其作为插件实现。推出 RabbitMQ 延迟消息插件。
“我的队列使用了多少内存?”这是一个很容易提出的问题,但要回答却比较复杂。RabbitMQ 3.4 使您能够更清楚地了解队列如何使用内存。这篇博文对此进行了简要介绍,并解释了队列内存使用的一般情况。
RabbitMQ 3.3 的目标之一是让您能够更轻松地找到正在运行的系统中的瓶颈。旧版本的 RabbitMQ 允许您看到您受到了速率限制,但没有轻松地让您看到原因。在这篇博文中,我们将讨论 3.3 版本中的一些新的性能指标。
在开始之前,我要提醒您:这是关于 RabbitMQ 3.3 中性能相关更改的另一篇冗长的博文。您还在吗?很好。
所以在 上一篇博文 中,我提到了“一项我将在未来的博文中讨论的新功能”。该功能是消费者偏好。
好吧,我们昨天已经把 坏消息 抛在了脑后,所以今天让我们来谈谈(一些)好消息:某些类型的发布和消费现在快了很多,尤其是在集群中。
什么?又一篇 “突破限制” 的博文?是的,但希望这次比上次处理起来要少一些。但是,RabbitMQ 3.3.0 中存在足够多的略微不兼容的更改,值得在此列出。
我们架构中的不同服务将需要一定量的资源来运行,无论这些资源是 CPU、RAM 还是磁盘空间,我们都需要确保我们有足够的资源。如果我们不对服务器将使用的资源数量设置限制,那么在某个时候我们会遇到麻烦。如果数据库用完文件系统空间,媒体存储空间被图像填满且从未移动到其他位置,或者 JVM 用完 RAM,都会发生这种情况。如果您没有过期/删除旧备份的策略,即使您的备份解决方案也会成为问题。好吧,队列也不例外。我们必须确保我们的应用程序不会允许队列无限增长。我们需要制定一些策略来删除/逐出/迁移旧消息。
在 RabbitMQ 3.2.0 中,我们引入了 消费者优先级,这毫不奇怪地允许我们为消费者设置优先级。这为我们提供了一些控制权,可以控制 RabbitMQ 如何将消息传递给消费者,以便获得可能对我们的应用程序有益的不同类型的调度。
您何时会在代码中使用消费者优先级?
因此,我们在 RabbitMQ 3.2.0 中添加了对联合队列的支持。这篇博文解释了它们的目的以及如何使用它们。