博客 | RabbitMQ 消息队列
我们架构中的不同服务需要一定数量的资源来运行,无论这些资源是 CPU、RAM 还是磁盘空间,我们都需要确保我们有足够的资源。如果我们不限制服务器将使用的资源数量,那么在某个时刻我们就会陷入困境。如果你的数据库用完了文件系统空间,你的媒体存储用满了图像并且你从未将其转移到其他地方,或者你的 JVM 用完了 RAM,就会发生这种情况。即使你的备份解决方案也会出现问题,如果你没有制定过期的/删除旧备份的策略。好吧,队列也不例外。我们必须确保我们的应用程序不会让队列无限增长。我们需要制定一些策略来删除/清除/迁移旧消息。
在 RabbitMQ 3.2.0 中,我们引入了 消费者优先级,顾名思义,它允许我们为消费者设置优先级。这让我们对 RabbitMQ 如何将消息传递给消费者有一定的控制权,以便获得可能对我们的应用程序有益的不同调度类型。
你什么时候会在代码中使用消费者优先级?
因此,我们在 RabbitMQ 3.2.0 中添加了对联合队列的支持。这篇博文解释了它们的作用以及如何使用它们。
RabbitMQ 是一个非常可扩展的消息代理,允许用户通过编写插件来扩展服务器的功能。许多代理功能甚至作为默认情况下随代理安装一起提供的插件提供:管理插件,或者 STOMP 支持,仅举几个例子。虽然这很酷,但插件必须用 Erlang 编写的这一事实有时是一个挑战。我决定看看是否可以用另一种面向 Erlang 虚拟机 (EVM) 的语言编写插件,在这篇文章中,我将分享我的进展。
RabbitMQ 包含大量酷炫的新功能。但为了实现其中的一些功能,我们需要改变一些东西。因此,在这篇博文中,我将列出其中的一些内容,以防你需要做任何事情。
我为 RabbitMQ 写了一个插件,它添加了对 MQTT 3.1 协议的支持。MQ Telemetry Transport 是一种轻量级 PUB/SUB 协议,专为资源受限设备和有限带宽情况而设计,使其非常适合传感器和移动设备。该实现是一个协议适配器插件,允许 MQTT 客户端同时连接到 RabbitMQ 代理,同时连接实现其他协议的客户端。我们鼓励需要在健壮、可扩展的代理上结合低开销协议、高可靠性和企业功能的项目考虑此选项。
在 Rabbit 总部,我们一直很享受 "RabbitMQ 实战",这是 RabbitMQ 和消息传递的入门书。 它是 Manning 系列 的一部分,这本书由 Jason Williams 和 Alvaro Videla 共同编写,他们都以对 Rabbit 社区的众多贡献而闻名。
今天,我们想对 Jason 和 Alvaro 说声谢谢。 谢谢 Jason 和 Alvaro! 你们做得太棒了,我们请你们喝无数瓶啤酒。
但还有更多... Manning 已经好心地向这篇博客的读者提供了 37% 的促销折扣。 所有内容都将在下面揭晓,在 Jason Williams 本人的客座文章中...
在 RabbitMQ 总部,我们很长一段时间以来一直在努力寻找一种在 web 浏览器中公开消息传递的良好方法。过去,我们尝试过很多方法,从著名的 JsonRPC 插件(它基本上通过 AJAX 公开了 AMQP),到 Rabbit-Socks(试图创建一个通用协议中心),再到管理插件(它可以用于基本的事情,比如从浏览器发送和接收消息)。
随着时间的推移,我们了解到 web 上的消息传递与我们习惯的非常不同。我们所有的尝试都没有真正解决这个问题,而且 web 上的消息传递可能在一段时间内都不会完全解决。
也就是说,有一个简单的事情,RabbitMQ 用户一直都在询问,虽然它并不完美,但它远不是在浏览器中进行消息传递的最糟糕的方式:通过 WebSockets 公开 STOMP。
© 2024 RabbitMQ. All rights reserved.