时间:2025-02-16 13:19-16:19
地点:广州图书馆
人物:我、伟宝
天气:晴 (17度~26度)
位置:7楼0063列A面04架02层
我们希望拥有一切,但可惜的是,我们知道不太可能。在使用微服务架构构建分布式系统时,有一个数学定理证明了这一点,这就是CAP定理。你可能听说过这个定理,特别是在讨论不同类型的数据存储的优点时,我们会经常听到。该定理的核心思想是,在分布式系统中,我们只能在3个要素——一致性(consistency)、可用性(availability)和分区容错性(partition tolerance)中取舍。具体来说,CAP定理告诉我们,在故障模式下,我们只能同时实现两个特性。
一致性是指,当访问多个节点时将得到相同的答案,可能性是指,每一个请求都能得到响应,分区容错性是指,当集群中的某些节点无法通行时,系统整体还能继续服务的能力。
牺牲分区容错性
我们不得不从CAP中选择两个特性,我们有最终一致性的AP系统,也有一致但很难构建和扩展的CP系统。为什么没有CA系统呢?为什么不能牺牲分区容错性呢?如果我们的系统没有分区容错性,它就不能在网络上运行。换句话说,它需要在本地以单一线程的形式运行,而无法再分布式环境下运行。所以,在分布式系统中,CA系统是不存在的。