RabbitMQ ha 模式全部或完全不同?

问题描述 投票:0回答:3

我们有一个包含 3 个节点的集群,目前我们有以下 HA(高可用性)镜像策略,如下所示:

enter image description here

  1. 看到我们将 ha-params 指定为 2,这是否意味着镜像到其他 2 个节点,或者总共 2 个节点或 3 个节点?
  2. 这和下面我们只指定all一样吗,因为只有3个节点?

enter image description here

rabbitmq-exchange rabbitmqctl
3个回答
3
投票

计数值 2 表示 2 个副本:1 个队列领导者和 1 个队列镜像。换句话说:

NumberOfQueueMirrors = NumberOfNodes - 1

挖掘更多细节:https://www.rabbitmq.com/ha.html#mirroring-arguments


1
投票

深入研究并有了更多的理解,我可以看到将 ha-params 指定为 2 将意味着总共 2 个节点将被镜像,因此其中一个节点不会被镜像!它与 all 不同,因为它会镜像到所有节点,这对我来说更有意义。


0
投票

ha-mode 设置为 exactly 并将 ha-params 设置为 2,将在集群中的 2 个节点(包括领导者)上启用镜像/复制。如果在这种情况下添加新节点,复制将继续仅在 2 个节点上进行。

另一方面,将 ha-mode 设置为 all 时,将在集群中的所有节点上启用镜像/复制。在这里,如果将新节点添加到集群中,复制也将在新节点上开始发生。

您可以在此处阅读有关经典镜像队列的更多信息 - https://www.rabbitmq.com/docs/3.13/ha#mirroring-arguments

此外,经典镜像队列在最新版本的 RabbitMQ 中已被弃用。现代方法是使用 Quorum Queues - https://www.rabbitmq.com/docs/quorum-queues

© www.soinside.com 2019 - 2024. All rights reserved.