搭建RabbitMQ集群有必要使用三个节点吗?

Is it necessary to use three nodes to build RabbitMQ cluster?

我不得不说官方网站提供的信息很少,无法清楚地了解 RabbitMQ。

官网建议使用三个节点搭建集群。这是什么原因?我想它就像 ZooKeeper,它需要奇数个节点来进行仲裁并选举主节点。

另外,使用非HA集群有什么好处?提高性能还是什么?如果一个队列所在的节点宕机了,那么这个队列就没有工作了。那么对于所有情况,是否有必要将集群设置为镜像队列和自动同步?

三个节点是具有合理 HA 的最小值。 假设你有一个镜像在两个节点中的队列,如果一个宕机,另一个将被提升为新的从属或主控。

请阅读here部分自动处理分区有关暂停少数模式的更多信息

部分

is therefore not a good idea to enable pause-minority mode on a cluster of two nodes since in the event of any network partition or node failure, both nodes will pause

RabbitMQ 可以以不同的方式处理集群,具体取决于您部署它的位置 - LAN 或 WAN 或不稳定的 LAN 等。您还可以使用 federation, shovel

what is the advantage of using a non-HA cluster? Improve the performance or what?

我会说是的,或者只是您有一个不需要 HA 队列的环境,因为您只能有临时队列。

is it necessary to set the cluster to be mirror queue and auto-sync?

您也可以决定 manual-sync,因为当您同步时队列被阻塞,如果您有很多消息要同步,这可能是个问题。例如,您可以决定在没有流量时同步队列。

Here(第 Unsynchronised Slaves 部分)解释得很清楚。

你的问题有点笼统,要看你要找什么了。