跳到主要内容

使用 RabbitMQ 的分布式信号量

·7 分钟阅读
Álvaro Videla

在这篇博文中,我们将讨论在分布式系统中控制对特定资源的访问的问题。解决这个问题的方法在计算机科学中是众所周知的,它被称为信号量,由 Dijkstra 在 1965 年在他的论文“合作顺序进程”中发明。我们将看到如何使用 AMQP 的构建块(如消费者、生产者和队列)来实现它。

使用 RabbitMQ 防止无界缓冲区

·9 分钟阅读
Álvaro Videla

我们架构中不同的服务将需要一定数量的资源来运行,无论是 CPU、RAM 还是磁盘空间,我们都需要确保我们有足够的资源。如果我们不对服务器将要使用的资源数量进行限制,那么在某个时候我们会遇到麻烦。如果您的数据库耗尽文件系统空间,您的媒体存储空间被图像填满并且从不将它们移动到其他地方,或者您的 JVM 耗尽 RAM,就会发生这种情况。如果您没有用于过期/删除旧备份的策略,即使您的备份解决方案也会成为问题。好吧,队列也不例外。我们必须确保我们的应用程序不会让队列永远增长。我们需要制定一些策略来删除/驱逐/迁移旧消息。

使用 RabbitMQ 的消费者优先级

·4 分钟阅读
Álvaro Videla

在 RabbitMQ 3.2.0 中,我们引入了消费者优先级,这并不令人意外地允许我们为我们的消费者设置优先级。这为我们提供了一些关于 RabbitMQ 如何向消费者传递消息的控制,以便获得一种可能对我们的应用程序有益的不同类型的调度。

你会在什么情况下想在你的代码中使用消费者优先级?

使用 Elixir 编写 RabbitMQ 插件

·8 分钟阅读
Álvaro Videla

RabbitMQ 是一个非常可扩展的消息代理,允许用户通过编写插件来扩展服务器的功能。许多代理功能甚至作为插件默认随代理安装一起提供:管理插件STOMP 支持,仅举几个例子。虽然这很酷,但插件必须用 Erlang 编写这一事实有时是一个挑战。我决定看看是否可以用另一种以 Erlang 虚拟机 (EVM) 为目标的语言编写插件,在这篇文章中我将分享我的进展。

RabbitMQ 3.0 的破坏性变更

·6 分钟阅读
Simon MacMullen

RabbitMQ 包含许多很酷的新功能。但是为了实现其中的一些功能,我们需要改变一些东西。所以在这篇博文中,我将列出其中的一些内容,以防您需要对它们做任何事情。

MQTT 适配器

·5 分钟阅读
Emile Joubert

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

© . All rights reserved.