丢失镜像队列

时间:2015-06-16 17:51:59

标签: rabbitmq

具有镜像全部HA policies defined的3个节点的RabbitMQ群集。群集已出现故障并已分区为独立节点。群集被修复,由于失败,一些队列丢失了。即使镜像所有队列的HA策略到位,这是否可能出现这种情况?

1 个答案:

答案 0 :(得分:4)

简而言之,是的,但是了解你的具体情况会很好。

来自https://www.rabbitmq.com/partitions.html

  

在网络分区

期间      

当网络分区到位时,两个(或更多!)侧面   集群可以独立发展,双方都在思考另一方   已经坠毁。可以创建或删除队列,绑定,交换   分别。在分区中分割的镜像队列将会   最后在分区的每一侧都有一个主服务器,同样是两个   双方独立行事。

一些示例场景:

如果在网络分区期间创建了队列,则在修复群集时,无法保证它们将被保留。丢失的分区将丢弃其状态并从获胜的分区中恢复它。

如果重新启动ram节点,它们只有队列定义的副本,那么它们将丢失。由于这个原因,rabbitmq文档建议不使用ram节点。

我强烈推荐rabbitmq文档,它非常广泛且非常精确。