知识卡片
环形复制迫使RabbitMQ接受网络分区
内容
RabbitMQ镜像队列的复制关系呈环形结构——一条消息要被确认,需要按master→slave1→slave2…依次执行,最后一个节点再把结果传回master才算真正确认,这比ZooKeeper式的Quorum投票([[ZooKeeper为分布式应用提供一致性协调]])能提供更强的一致性,但代价是环上任何一个节点变慢或故障,整条复制链都会被拖慢乃至阻塞。RabbitMQ因此主动引入网络分区机制,把响应慢或故障的节点从复制环中隔离出去,以保证其余节点的服务不被拖累。发散:这揭示了一致性模型的选择会反向决定容错策略——用更强一致性换来的通常是对慢节点更敏感,因此更需要主动的隔离机制来兜底,一致性和容错手段是配套设计的,不能割裂来看。
参考来源
《RabbitMQ实战指南》第10章《网络分区》