具有镜像全部HA policies defined的3个节点的RabbitMQ群集。群集已出现故障并已分区为独立节点。群集被修复,由于失败,一些队列丢失了。即使镜像所有队列的HA策略到位,这是否可能出现这种情况?
答案 0 :(得分:4)
简而言之,是的,但是了解你的具体情况会很好。
来自https://www.rabbitmq.com/partitions.html
在网络分区
期间当网络分区到位时,两个(或更多!)侧面 集群可以独立发展,双方都在思考另一方 已经坠毁。可以创建或删除队列,绑定,交换 分别。在分区中分割的镜像队列将会 最后在分区的每一侧都有一个主服务器,同样是两个 双方独立行事。
一些示例场景:
如果在网络分区期间创建了队列,则在修复群集时,无法保证它们将被保留。丢失的分区将丢弃其状态并从获胜的分区中恢复它。
如果重新启动ram节点,它们只有队列定义的副本,那么它们将丢失。由于这个原因,rabbitmq文档建议不使用ram节点。
我强烈推荐rabbitmq文档,它非常广泛且非常精确。