3

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

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

它可以开箱即用地工作吗?

对于 Windows/.NET 应用程序环境,是否还有其他更适合(商业上还可以)的 MQ?

4

2 回答 2

7

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

于 2011-11-01T21:05:03.397 回答
6

它可以开箱即用地工作吗?

不会。当一个节点出现故障时,它的所有连接都将关闭。由于 AMQP 连接是有状态的,所以没有办法解决这个问题。您可以实现的是 1) 代理出现故障,2) 所有客户端断开连接,3) 客户端连接到其他节点(伪装成原始节点)并且不明智。

附带说明一下,rabbit 目前不支持主动-主动 HA 集群。它确实支持主动-被动集群和一种形式的逻辑集群(这可能是您正在寻找的)。

于 2010-11-11T21:39:48.460 回答