知识卡片

三种自动分区策略代表处理脑裂的不同哲学

专业/工作 · 595.e

内容

RabbitMQ提供三种自动应对网络分区的策略:pause-minority让判定为”少数派”的节点主动关闭自己,本质是预防性自我牺牲,在CAP里明确选择牺牲部分可用性保一致性;pause-if-all-down依赖一份显式配置的受信节点列表,只有与受信节点完全失联时才关闭自己,适合处理对等分区(如两地对等机房)这种”少数派”规则本身会失效的场景;autoheal则是事后诸葛式——先等分区稳定下来,再按客户端连接数、节点数等指标选出一个”获胜分区”,重启其余分区的节点。发散:预防性自我牺牲反应最快但可能过度谨慎,基于受信锚点的判定需要提前配置且要选对锚点,事后择优最省心但恢复延迟最高——选择本质是在”响应速度、配置成本、决策公平性”之间挑一个侧重点,没有普适最优解。

参考来源

《RabbitMQ实战指南》第10章《网络分区》