最近更新时间:2024-04-09 10:35:24
RabbitMQ提供了四种处理网络分区的方式,即rabbitmq.config中的cluster_partition_handling参数配置,分别为:
** ignore**:ignore的配置是当网络分区的时候,RabbitMQ不会自动做任何处理,即需要手动处理。该模式保证数据完整性,牺牲一致性以及部分可用性。
pause_minority:当发生网络分区时,集群中的节点在观察到某些节点down掉时,会自动检测其自身是否处于少数派(小于或者等于集群中一般的节点数)。少数派中的节点在分区发生时会自动关闭,当分区结束时又会启动。如果未设置镜像队列,发生分区时少数派上的队列将无法生产消费。此模式折中了可用性,选择了数据一致性。
autoheal:在autoheal模式下,当认为发生网络分区时,RabbitMQ会自动决定一个获胜的(winning)分区,然后重启不在这个分区中的节点以恢复网络分区。该模式在更看重服务连续性而不是跨节点数据一致性时使用。
pause_if_all_down:在pause_if_all_down模式下,RabbitMQ会自动关闭不能和list中节点通信的节点。语法为{pause_if_all_down, [nodes], ignore|autoheal},其中[nodes]即为前面所说的list。
目前金山云采用cluster_partition_handling=ignore模式,后台系统监控告警分区情况,由金山侧运维处理。客户无法自行修改,客户可联系对应商务,提工单评估修改分区策略配置。
详细信息请参考网络分区策略设置
纯净模式