是否可以使用RabbitMQ HA使用多个(2)RabbitMQ群集?
这是我的要求:
我们有2个RabbitMQ集群(每个集群有4个节点)。两个集群中的所有节点都将使用相同的Erlang cookie。因此,即使这两个集群在物理上位于不同的位置,但也将充当具有8个节点的单个集群。
我们计划使用HAProxy对两个集群(8个节点)进行负载平衡。发布者和消费者都将使用此代理连接到代理。
我们希望使用带有ha模式的HA的镜像队列:确切地说,ha-params:4,ha-sync-mode:自动以及cluster_partition_handling的自动修复。
问题:
如果是HA,我们可以指定使用第一个集群中的2个节点和第二个集群中的2个节点。据我了解,这可以通过策略ha模式完成:节点和使用节点名称,但这样总是使用相同的节点,这个设置可以动态吗?
由于两个集群都非常可靠,对于cluster_partition_handling(如果是大脑分裂)使用自动修复是否正确?
根据这个“默认情况下,RabbitMQ集群中的队列位于单个节点(首先声明它们的节点)上。这与交换和绑定形成对比,交换和绑定总是可以考虑在所有节点上。“这是否意味着默认情况下镜像交换?因此,当消息到达交换机并且该节点发生故障时,该消息是否可以在另一个节点上的另一个交换机上获得?
答案 0 :(得分:0)
RabbitMQ团队监控this mailing list,有时只回答StackOverflow上的问题。
这样,即使这两个集群在物理上位于不同的位置,但也将充当具有8个节点的单个集群。
请不要这样做。 RabbitMQ群集需要与低延迟的可靠网络连接。如果您的群集跨越WAN或可用区,则您的网络分区的可能性会大大增加。有关详细信息,请参阅文档的this section。您应该使用铲子或联合功能。
这是否意味着默认情况下镜像交换?因此,当消息到达交换机并且该节点发生故障时,该消息是否可以在另一个节点上的另一个交换机上获得?
是的,是的。