我是 RabbitMQ 的新手,并且不太确定我的目标是否可以实现。基本上,我的目标是能够设置高可用性和负载均衡队列。
所以给出 3 节点,每个节点都有 1 队列(让我们说Node1
有Queue1, Queue2, Queue3
。Node2
有Queue1, Queue2, Queue3
,Node3
也是如此。 每个队列都有自己的消费者。
我想对队列中的消息进行负载均衡,以便生产者可以将消息发送到任何队列并让消费者处理队列。
我还想实施镜像,以便Nodes
中的一个出现故障(假设Node1
由于某种原因而失效),发送到队列的消息在Node1
中,不会丢失并仍然会被处理。
根据我对聚类的理解,消息存储在主队列所在的位置,因此我没有达到我想要的负载平衡队列。
我的目标是否可以实现?如果是,我该怎么做?
我正在查看联邦队列但不太确定我是否可以使用它实现镜像。
感谢。 GGarcia
答案 0 :(得分:1)
根据这个不,它是不可能的:
https://www.rabbitmq.com/blog/2013/10/23/federated-queues-in-3-2-0/
'联合队列只会在一个位置包含给定的消息;没有镜像。'
我一直在想,如何实施联合队列,并使用“低级别”来为每个节点提供HA。解决方案如Pacemaker / DRBD?
https://www.rabbitmq.com/pacemaker.html
Haven没试过,这只是一个想法。
要尝试的另一件事是使用分片而不是联合队列,在这里它说它应该可以镜像其分片队列:
祝你好运!