我在寻找有关如何扩展RabbitMQ使用者,特别是如何使用同一组件的多个实例的信息时遇到问题。
说我有两个组成部分; A和B。我将每个组件的三个实例设置为HA群集。假设A.1发送的消息具有与B匹配的密钥。我只希望B的一个实例使用此消息,而不是全部使用3个。
您能否指出一些说明该操作方法的文档?理想情况下,将了解有关采用的负载平衡方法的一些信息。
应该没问题,因为RabbitMQ使用各种异步体系结构模式来解耦应用程序,并且其中之一是循环式
Round-Robin
默认情况下,RabbitMQ在进入队列时立即按顺序将每条消息分派(或预分配)给下一个使用者。它平均分发消息,平均每个消费者将在该位置上获得相同数量的消息。
此方法的缺点是消息使用不均衡的资源。在有两名工人的情况下,当所有奇怪的消息都很重,甚至消息很轻时,一位工人将一直很忙,而另一位工人则干很少的工作。
如下面的示例所示,两个使用者都将以循环方式获取消息,因此,在您的情况下,如果三个实例绑定到同一队列,则一条消息将仅发送给其中一个使用者,关键是它们应该绑定到公共队列。