CAP 定理中的分区容错性是指系统即使在发生网络分区时也能继续运行的能力。网络分区发生在分布式系统的部分因故障而彼此隔离时,例如数据中心或服务器之间的连接中断。分区容错系统确保,尽管存在这些通信中断,整个系统仍能保持功能正常。例如,如果两个不同区域的数据库节点失去连接,分区容错设计允许两个节点即使暂时无法同步数据,也能继续本地服务请求。
CAP 定理指出,在分布式系统中,你只能优先选择三个属性中的两个:一致性(所有节点看到相同的数据)、可用性(每个请求都收到响应)和分区容错性。分区容错性通常被视为不可协商的要求,因为网络故障在现实世界中是不可避免的。这迫使开发人员在分区期间在一致性和可用性之间做出选择。例如,优先选择可用性 (AP) 的系统可能允许对分区的两边进行写入,从而可能导致暂时不一致。优先选择一致性 (CP) 的系统可能会拒绝在分区一侧或两侧进行写入,直到分区恢复,从而确保数据一致性但牺牲可用性。像 Apache Cassandra (AP) 和 MongoDB (CP) 这样的工具就是这些权衡的例子。
实际上,工程师根据其具体需求设计系统。例如,社交媒体应用在分区期间可能会优先考虑可用性,以便用户可以发布更新,接受动态消息可能暂时显示旧数据的情况。金融系统可能会优先考虑一致性,以防止双重支付,即使这意味着在中断期间某些交易会延迟。分区容错性不是关于避免分区,而是关于管理其影响。冲突解决(例如,版本向量)或自动故障转移等技术有助于缓解问题,但核心决策——在分裂期间选择一致性还是可用性——仍然是系统设计的基础。