@
lcdxiangzi #39 请举出事实。
再纠正你一点错误:CAP 是分布式系统的理论,当你讨论到 CAP 的时候,已经是分布式系统了。下面摘自维基百科:
在理论计算机科学中,CAP 定理( CAP theorem ),又被称作布鲁尔定理( Brewer's theorem ),它指出对于一个分布式计算系统来说,不可能同时满足以下三点:[1][2]
一致性( Consistency ) (等同于所有节点访问同一份最新的数据副本)
可用性( Availability )(每次请求都能获取到非错的响应——但是不保证获取的数据为最新数据)
分区容错性( Partition tolerance )(以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在 C 和 A 之间做出选择[3]。)
根据定理,分布式系统只能满足三项中的两项而不可能满足全部三项[4]。理解 CAP 理论的最简单方式是想象两个节点分处分区两侧。允许至少一个节点更新状态会导致数据不一致,即丧失了 C 性质。如果为了保证数据一致性,将分区一侧的节点设置为不可用,那么又丧失了 A 性质。除非两个节点可以互相通信,才能既保证 C 又保证 A,这又会导致丧失 P 性质。