知识卡片

CAP忽略网络延迟——某些数据只能选CA、放弃分布式写入

普通读书笔记卡 · 1673.a

内容

CAP理论隐含假设数据能瞬间复制到所有节点,但跨节点同步总有延迟。对余额、库存这类要求绝对一致的数据,技术上做不到分布式场景下完美的CP,只能退化为CA——只允许单点写入、其它节点做备份,放弃多点写入能力。发散:这不意味着整个系统不能分布式,可以按用户或数据分区把单点写限制在小范围,既保证单用户数据强一致,又把故障影响范围从全体用户降到某个子集——这正是支付宝挖断光缆只影响部分用户背后的设计。

参考来源

- 位置:《从0开始学架构》第27章《23|想成为架构师,你必须掌握的CAP细节》"CAP是忽略网络延迟的"一节(源文件:_epub-src/OEBPS/Text/part0026_split_000.html) - 结论依据:原文明确"对于某些严苛的业务场景,例如和金钱相关的用户余额,或者和抢购相关的商品库存,技术上是无法做到分布式场景下完美的一致性的……单个用户的余额、单个商品的库存,理论上要求选择CP而实际上CP都做不到,只能选择CA……这并不意味着这类系统无法应用分布式架构,只是说'单个用户余额、单个商品库存'无法做分布式,但系统整体还是可以应用分布式架构的"。 - 原始内容:单个用户的余额、单个商品的库存,理论上要求选择CP而实际上CP都做不到,只能选择CA。也就是说,只能单点写入,其他节点做备份,无法做到分布式情况下多点写入……这并不意味着这类系统无法应用分布式架构,只是说"单个用户余额、单个商品库存"无法做分布式,但系统整体还是可以应用分布式架构的。