RabbitMq是否从交换机到队列进行循环

Lan*_*lot 10 messaging message-queue rabbitmq

我目前正在评估消息队列系统,RabbitMq似乎是一个很好的候选者,所以我正在深入研究它.

为了给出一些上下文,我希望有一个类似于一个交换负载的东西来平衡消息发布到多个队列.我不想复制邮件,因此不能选择扇出交换.

另外我之所以考虑拥有多个队列而不是一个队列来处理与消费者的循环,我不希望我们的单点故障处于队列级别.

听起来我可以在发布者端添加一些逻辑来通过编辑路由键并具有适当的绑定来模拟该行为.但这种被动方法不会考虑每个队列上的消息消耗速度,如果该队列的消费者应用程序已经死亡,可能会导致填满一个队列.

我正在寻找一种来自交换实体方面的更主动的方式,它将根据每个队列大小或某种性质决定在何处发送下一条消息.

我读到了Alice和可用的RESTful API,但这似乎是实现快速路由决策的重要解决方案.

任何人都知道如果在交换队列之间循环是否可行,那么RabbitMQ呢?谢谢.

Ton*_*nes 4

在 AMQP 模型中,交换通常是无状态的,尽管最近在有状态交换方面进行了一些实验,因为现在既有用于管理 RabbitMQ 插件的系统,也有用于提供新的实验交换类型的系统。

我认为没有什么可以完全满足您的要求,尽管我不完全确定我理解该要求。除了单点故障之外,使用单个队列并让工作人员从中读取数据是否可以解决您的问题?如果是这样,那么您的问题就简化为在允许您使用该解决方案的 HA 配置中配置 RabbitMQ。有几种方法可以做到这一点:要么使用 HALinux 和共享存储来获得具有快速故障转移的主动/被动 HA,要么设置多个并行代理并在客户端上进行重复数据删除,可能使用 redis 或类似的方法来执行此操作。

我建议在rabbitmq-discuss邮件列表上再次提出你的问题,在那里更多的人将能够提供建议,并且讨论可以被存档以供后代使用。