知识卡片

CAP的决策粒度是数据而非整个系统

普通读书笔记卡 · 1673

内容

CAP理论中”选CP还是AP”的决策粒度是数据,而非整个系统——同一系统里不同类型数据可选不同策略。用户管理系统里,账号数据(ID、密码)通常要求CP,信息类数据(昵称、爱好)更适合AP。若把系统限定为单一策略,无论选哪个都会顾此失彼。发散:这提示架构决策要先做”数据分类”——按场景把数据拆成不同颗粒度分别决策,很多”理论用不上”的困惑源于决策粒度选错了。

参考来源

- 位置:《从0开始学架构》第27章《23|想成为架构师,你必须掌握的CAP细节》(源文件:_epub-src/OEBPS/Text/part0026_split_000.html) - 结论依据:原文以用户管理系统为例说明"用户账号数据可以采用'消息队列'的方式来实现CA……而用户信息数据可以采用'数据库同步'的方式来实现CA",不同类型数据可分别选择不同的一致性策略,说明CAP决策应以数据为粒度而非整个系统统一决策。 - 原始内容:同样以用户管理系统为例,即使是实现CA,不同的数据实现方式也可能不一样:用户账号数据可以采用"消息队列"的方式来实现CA,因为消息队列可以比较好地控制实时性,但实现起来就复杂一些;而用户信息数据可以采用"数据库同步"的方式来实现CA。