- CAP三要素:
- 一致性(Consistency):所有节点在同一时间具有相同数据
- 可用性(Availability):保证每个要求不管成功或者失败都有响应
- 分区容错性(Partition tolerance):系统中任意信息的丢失或失败不会影响系统的继续运作
CAP原则:三个要素最多只能同时实现两点
- 满足CA舍弃P,也就是满足一致性和可用性,舍弃容错性。但是这也就意味着你的系统不是分布式的了,因为涉及分布式的想法就是把功能分开,部署到不同的机器上。
- 满足CP舍弃A,也就是满足一致性和容错性,舍弃可用性。如果你的系统允许有段时间的访问失效等问题,这个是可以满足的。就好比多个人并发买票,后台网络出现故障,你买的时候系统就崩溃了。
- 满足AP舍弃C,也就是满足可用性和容错性,舍弃一致性。这也就是意味着你的系统在并发访问的时候可能会出现数据不一致的情况。
- 结论:事实证明,大多是都是牺牲了一致性。像是12306还有淘宝网就好比是你买火车票,本来你看到的是一张票,其实在这个时刻已经被买走了,你填好了信息准备买的时候发现系统提示你没票了。