处理使用者的多个实例(HA群集)

时间:2019-10-18 06:23:13

标签: rabbitmq

我在查找有关如何扩展RabbitMQ使用者的信息方面遇到问题,特别是如何使用同一组件的多个实例。

说我有两个组成部分; A和B。我将每个组件的三个实例设置为HA群集。假设A.1发送的消息具有与B匹配的密钥。我只希望B的一个实例使用此消息,而不是全部使用3个。

您能指出一些说明该操作方法的文档吗?理想情况下,应该了解有关采用的负载平衡方法的一些信息。

1 个答案:

答案 0 :(得分:0)

应该没问题,因为RabbitMQ使用各种异步架构模式来解耦应用程序,其中之一就是循环

轮循

默认情况下,RabbitMQ在进入队列时会立即按顺序将每条消息按顺序分派(或预分配)给下一个使用者。它平均分发消息,平均每个消费者将在该位置获得相同数量的消息。

此方法的缺点是消息使用不均匀的资源。在有两名工作人员的情况下,当所有奇怪的消息都很重,甚至消息很轻时,一位工人将一直忙碌而另一位工人则干得很少。

如下面的示例所示,两个使用者都将以循环方式获取消息,因此在您的情况下,如果三个实例绑定到同一队列,则一条消息将仅发送给其中一个使用者,即< strong> KEY是他们应该绑定到一个公共队列。 enter image description here