使用RabbitMQ铲将消息推送到空闲节点

时间:2019-02-07 07:32:39

标签: c# rabbitmq rabbitmq-shovel

我是RabbitMQ的新手

我有多个节点,每个节点都有一个生产者和几个消费者。 我尝试使队列长度非常短。 但是,我想介绍一种机制,如果队列达到某个阈值,我们可以将消息移动到另一个节点,前提是该节点低于阈值。 我可以用铁铲做吗?有人可以指出我正确的方向。

基本上,我想使用“铲子”将消息移到另一个不忙的节点,以便该节点上的使用者可以处理一些消息。 铁铲将不会取代繁忙节点上的使用者。

****************编辑*******************

我发现一把铲子很好用。 我创建了一个C#程序,该程序监视每个节点上的队列。 它使用QueueDeclarePassive(在RabbitMQ .net API上)。 如果该节点的工作量很少,则会创建一个临时的动态铲,以从另一个节点提取工作。

我唯一的问题是创建了一个循环。因为现在原始节点完成了工作并将数据铲回。

我需要防止这些循环发生。我可以让铲子在接收到的消息上添加标头,但是如果标头存在,我无法让其他节点铲起不接收数据。

有什么想法吗?

0 个答案:

没有答案