14

RabbitMQ 默认支持集群,但不会复制队列,而是绑定到创建它们的节点。我现在正在寻找使 RabbitMQ 高度可用的方法,而不是他们记录的 DRBD 解决方案,因为保留一个除了等待活动服务器关闭之外什么都不做的整个服务器似乎是一种资源浪费。

我正在考虑一个有两个队列的设置。发布消息时,我希望 RabbitMQ 集群将消息发送到两个队列中的任何一个,无论哪个队列已启动。我知道如果发布者尝试发布到已关闭的队列并且发布者可以使用另一个队列再次尝试,发布者会收到错误,但我想知道这是否可以在集群级别自动完成,以便我不不必编写客户端代码来处理它。这可以做到吗?

4

3 回答 3

14

最近 RabbitMQ 添加了主动/主动原生支持。 http://www.rabbitmq.com/ha.html

于 2012-02-08T18:07:11.800 回答
6

Have a look at Alternate Exchanges.

It's basically what you asked for, but with exchanges instead of queues. The idea would be to publish to an exchange with an alternate exchange specified (you can do this with any of the RabbitMQ clients). If the message can be delivered to the first, it will. If not (because it can't be reached or because there are no queues bound to it), the alternate is used.

于 2010-08-05T14:34:19.287 回答
5

高可用性又名“镜像”队列是 Rabbit HA 的黄金标准。

于 2013-08-29T16:52:57.023 回答