知识卡片
CAP决定同步策略
内容
分布式系统无法同时完美满足一致性、可用性和分区容忍。领域设计要把强一致留给真正的聚合边界,把跨上下文协作转成事件、补偿或最终一致。关联:[[事务边界定粒度]]
参考来源
- 位置:《复杂软件设计之道》第5章《CQRS架构》"5.5 CAP定理"一节(源文件:_chapter_text/ch05.txt)
- 结论依据:原文明确"在分布式系统环境下,P代表的分区容忍性是必需的选择,当选择了P以后,就只能在C和A两者之中选择一个",并以命令端/查询端网络分区为例说明应引入异步消息实现最终一致,而非在命令端阻塞重试牺牲可用性。
- 原始内容:网络分区的发生会影响一致性……在分布式系统环境下,P代表的分区容忍性是必需的选择,当选择了P以后,就只能在C和A两者之中选择一个……这里应该在CommandService和SyncService之间引入异步的消息机制……这样既保证了命令端和查询不再耦合,不会因为网络原因拖垮两者,也保证了两边数据的最终一致性。