1 - 有没有人能详细说明这两种方法之间的差异?
2 - 详细说明如果每个方法中一个节点出现故障,队列和消息会发生什么?
我在文档中看到
虽然RabbitMQ也支持群集,但群集旨在促进可扩展性,而不是可用性。因此,在集群中,如果节点发生故障,则故障节点上的队列将丢失。使用本指南中描述的高可用性设置,当节点发生故障时,持久队列和其中的持久消息可以由其他节点恢复。
这是否适用于镜像队列?
答案 0 :(得分:1)
镜像队列as described on the RabbitMQ website表示在配置为托管从队列的所有节点上复制所有消息。一旦消息到达镜像队列,如果节点发生故障,您将不会松开它。
使用"副本"实现镜像队列。它在所有配置的节点上。其中一个副本是队列主服务器(最初位于默认情况下创建队列的节点上)。其他副本是队列从属。
您的客户端可以从群集中的任何节点(甚至不保留主服务器或从服务器的节点)连接此队列并与之交互。
为了保证消息排序,所有消息首先通过队列主服务器,然后在所有从服务器上复制。这意味着可能存在大量的节点间通信。
当节点发生故障时,如果此节点持有队列主节点,则其中一个队列从属节点被选为新主节点。当节点返回时,它现在拥有一个队列从属。