知识卡片
正常运行时无需在C和A间取舍,只有分区发生时才需要
内容
CAP理论”三选二”的前提是系统发生了分区(P),若节点间网络正常,完全可以同时保证C和A。所以架构设计要分两种场景:分区发生时如何在CP/AP间取舍,以及分区未发生时如何把CA都做好——后者常被忽略,但系统绝大部分时间都处于无分区状态。发散:即使同一批数据,实现”正常时CA”的手段也可不同——账号数据可用消息队列强实时同步,信息类数据普通同步即可,应基于数据对延迟的容忍度选择,而非一刀切。
参考来源
- 位置:《从0开始学架构》第27章《23|想成为架构师,你必须掌握的CAP细节》(源文件:_epub-src/OEBPS/Text/part0026_split_001.html)
- 结论依据:原文明确"CAP理论告诉我们分布式系统只能选择CP或者AP,但其实这里的前提是系统发生了'分区'现象。如果系统没有发生分区现象……我们没有必要放弃C或者A,应该C和A都可以保证,这就要求架构设计的时候既要考虑分区发生时选择CP还是AP,也要考虑分区没有发生时如何保证CA"。
- 原始内容:CAP理论告诉我们分布式系统只能选择CP或者AP,但其实这里的前提是系统发生了"分区"现象。如果系统没有发生分区现象,也就是说P不存在的时候……我们没有必要放弃C或者A,应该C和A都可以保证。