rabbitmq HA集群

时间:2010-11-10 02:12:54

标签: rabbitmq high-availability

我想将RabbitMQ设置为具有HA的两个(或更多)节点集群。

用例:客户端生产者应用程序(C#.NET)知道群集有两个节点并发布到群集。各种消费者应用程序(也称为C#.NET)连接到群集并获取生产者生成的所有消息。只要至少有一个节点启动并运行生产者,消费者将继续工作而不会出错。假设节点A和B正在运行而B已经死了一段时间,然后重新启动,然后一段时间A死了,客户端都继续运行而没有收到错误,因为在任何时候都至少有一个节点启动。

可以开箱即用吗?

对于Windows / .NET应用程序环境,是否还有其他更合适的商业标准?

2 个答案:

答案 0 :(得分:7)

RabbitMQ v2.6.0现在支持使用主动/主动群集的高可用性队列。微软和许多其他公司已经合作Apache QPid,它具有C#绑定,并且还支持主动/主动HA群集。

答案 1 :(得分:6)

  

可以开箱即用吗?

没有。当节点发生故障时,其所有连接都将关闭。由于AMQP连接是有状态的,因此没有办法解决这个问题。您可以实现的目标是1)经纪人关闭,2)所有客户端断开连接,3)客户端连接到其他节点(伪装成原始节点)并且没有更明智。

另一方面,兔子目前不支持主动 - 主动HA聚类。它确实支持active-passive clusteringlogical clustering形式(可能是您正在寻找的)。